swap_ranges
|
|
类别:算法 |
组件类型:函数 |
原型
template <class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2);
说明
Swap_ranges交换范围内各元素[first1, last1)与范围内对应元素[first2, first2 + (last1 - first1))交换,即对于各整数n使得0 <= n < (last1 - first1)交换*(first1 + n)和*(first2 + n)返回值为first2 + (last1 - first1).
定义
在标准头文件 algorithm 中定义,也在非标准后向兼容性头文件 algo.h中定义。类型要求
ForwardIterator1和ForwardIterator2都必须是对正向迭代器的模型。ForwardIterator1和ForwardIterator2的值类型必须可互相转换。先决条件
-
[first1, last1)是有效的范围。
-
[first2, first2 + (last1 - first1))是有效的范围。
- 这两个范围[first1, last1)和[first2, first2 + (last1 - first1))不重叠。
复杂性
线性。准确地last1 - first1执行交换。示例
vector<int> V1, V2;
V1.push_back(1);
V1.push_back(2);
V2.push_back(3);
V2.push_back(4);
assert(V1[0] == 1 && V1[1] == 2 && V2[0] == 3 && V2[1] == 4);
swap_ranges(V1.begin(), V1.end(), V2.begin());
assert(V1[0] == 3 && V1[1] == 4 && V2[0] == 1 && V2[1] == 2);
说明
另请参见
swap, iter_swap.
版权 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息