4.3.7 旋转
STL提供了对于容器或序列的旋转算法rotate()和rotate_copy()。旋转运算是使序列中的元素按照一个环的方式旋转,而不是简单的左移。rotate()算法将容器中的元素或序列看作一个环,旋转这些元素直至原来middle处的元素到达first位置。rotate_copy()算法会产生一个旋转后的副本,即在旋转之后会复制参加旋转的元素。其原型为:

和

值得指出的是,对于rotate_copy()算法的源区间和目标区间是不允许重复的。下面以例4-22来阐释上述两种算法的使用方法。
例4-22

例4-22的执行效果如图4-22所示。

图4-22 例4-22的执行效果