C++ algorithm replace_copy_if() 函数
示例
创建一个向量的副本,并将所有包含字母"o"的值替换为"Toyota":
bool has_o(string item) {
return item.find('o') != string::npos;
}
int main() {
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
vector<string> newcars(4);
replace_copy_if(cars.begin(), cars.end(), newcars.begin(), has_o, (string)"Toyota");
for (string car : newcars) {
cout << car << "
";
}
return 0;
}
亲自试一试 »
定义和用法
replace_copy_if() 函数会创建一个数据范围的副本,其中所有符合指定条件的元素都会被替换为不同的值。
数据范围由迭代器指定。
条件由一个函数指定,该函数接受一个元素的值作为参数,并返回一个布尔值:如果条件匹配,则返回 1;如果不匹配,则返回 0。
语法
replace_copy_if(iterator start, iterator end, iterator destination, function condition, <type> replace);
<type> 指的是该范围包含的数据类型。
参数值
| 参数 | 描述 |
|---|---|
| start | 必需。指向数据范围起始位置的迭代器。 |
| end | 必需。指向数据范围结束位置的迭代器。将包含到此位置之前的元素,但不会包含此位置的元素。 |
| destination | 必需。指向数据要复制到的数据范围起始位置的迭代器。 |
| condition | 必需。一个函数,它接受数据范围内某个元素的值作为参数,并返回一个布尔值。 |
| replace | 必需。替换值。 |
技术细节
| 返回值: | 指向目标数据范围末尾的迭代器。 |
|---|
相关页面
阅读更多关于数据结构的内容,请参阅我们的数据结构教程。
阅读更多关于迭代器的内容,请参阅我们的迭代器教程。
阅读更多关于算法的内容,请参阅我们的算法教程。

