C++ 算法 replace_copy() 函数
定义和用法
replace_copy()
函数创建一个数据范围的副本,并将其中所有匹配指定值的元素替换为新值。
数据范围通过迭代器指定。
实例
创建 vector 的副本并将 "Ford" 替换为 "Toyota":
vector<string> cars = {"Volvo", "BMW", "Ford", "Tesla"}; vector<string> newcars(4); replace_copy(cars.begin(), cars.end(), newcars.begin(), (string)"Ford", (string)"Toyota"); for (string car : newcars) { cout << car << " "; }
语法
replace_copy(iterator start, iterator end, iterator destination, <type> find, <type> replace);
其中 <type> 表示数据范围包含的数据类型。
参数
参数 | 描述 |
---|---|
start | 必需。指向源数据范围起始位置的迭代器。 |
end |
必需。指向源数据范围结束位置的迭代器。 将复制并替换该位置之前的元素。 |
destination | 必需。指向目标数据范围起始位置的迭代器。 |
find | 必需。需要被替换的目标值。 |
replace | 必需。用于替换的新值。 |
技术细节
返回: | 指向目标数据范围末尾的迭代器(最后一个被写入元素的下一个位置)。 |
---|
说明:
- 该函数不会修改原始数据范围
- 目标数据范围必须预先分配足够空间
- 时间复杂度为 O(n),其中n是数据范围的大小
相关页面
教程:C++ 数据结构
教程:C++ 迭代器
教程:C++ 算法