C++ 算法 swap_ranges() 函数
定义和用法
swap_ranges() 函数交换两个相同大小的数据范围内的值。
数据范围通过迭代器指定。
实例
交换 vector 中的两个数据范围:
vector<char> values = {'1', '2', '3', '4', 'w', 'x', 'y', 'z'};
// 交换第 2-3 个元素('2','3')与第 6-7 个元素('x','y')
swap_ranges(values.begin() + 1, values.begin() + 3, values.begin() + 5);
for (char item : values) {
cout << item << " "; // 输出:1 x y 4 w 2 3 z
}
语法
swap_ranges(iterator start1, iterator end1, iterator start2);
参数
| 参数 | 描述 |
|---|---|
| start1 | 必需。指向第一个数据范围起始位置的迭代器。 |
| end1 |
必需。指向第一个数据范围结束位置的迭代器。 将交换到该位置之前的元素。 |
| start2 | 必需。指向第二个数据范围起始位置的迭代器。 |
技术细节
| 返回: | 指向第二个数据范围末尾的迭代器(最后一个被交换元素的下一个位置)。 |
|---|
说明:
- 两个数据范围不能重叠
- 时间复杂度为 O(n),其中 n 是交换的元素数量
- 要求两个范围大小相同,否则行为未定义
- 适用于所有支持值交换的数据类型
相关页面
教程:C++ 数据结构
教程:C++ 迭代器
教程:C++ 算法