4.3.7  旋转

4.3.7 旋转

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

978-7-111-51399-5-Chapter04-83.jpg

978-7-111-51399-5-Chapter04-84.jpg

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

例4-22

978-7-111-51399-5-Chapter04-85.jpg

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

978-7-111-51399-5-Chapter04-86.jpg

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