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++ 算法