rotate
|
|
类别:算法 |
组件类型:函数 |
原型
template <class ForwardIterator>
inline ForwardIterator rotate(ForwardIterator first, ForwardIterator middle,
ForwardIterator last);
描述
旋转在范围内旋转元素。也就是说,由middle指向的元素被移动到位置first,由middle + 1指向的元素被移动到位置指向的元素被移动到first + 1,依此类推。一种考虑此操作的方式是,它交换两个范围[first, middle)和[middle, last)。形式上,对于每个整数n,条件满足0 <= n < last - first,元素*(first + n)分配给. 旋转*(first + (n + (last - middle)) % (last - first))返回.
first + (last - middle)
定义
-
类型要求ForwardIterator
-
类型要求是 向前迭代器 的模板。
是可修改的。
-
,依此类推。一种考虑此操作的方式是,它交换两个范围先决条件
-
和是有效的范围。
是有效的范围。 [1]
复杂性线性的。最多last - first
char alpha[] = "abcdefghijklmnopqrstuvwxyz";
rotate(alpha, alpha + 13, alpha + 26);
printf("%s\n", alpha);
// The output is nopqrstuvwxyzabcdefghijklm
示例
备注[1] 由这两个要求得出先决条件
[2]
旋转[first, last)
使用的算法根据其参数是 向前迭代器、双向迭代器 还是 随机存取迭代器 而有所不同。但是,所有这三个算法都是线性的。
另请参阅
rotate_copy
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。