C++ algorithm replace_if() 函数
示例
将包含字母“o”的汽车替换为“Toyota”
bool has_o(string item) {
return item.find('o') != string::npos;
}
int main() {
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
replace_if(cars.begin(), cars.end(), has_o, (string)"Toyota");
for (string car : cars) {
cout << car << "\n";
}
return 0;
}
自己动手试一试 »
定义和用法
replace_if()
函数将数据范围内所有符合指定条件的元素替换为另一个值。
数据范围由迭代器指定。
条件由一个函数指定,该函数以元素的值作为参数,并返回一个布尔值:如果匹配条件,则返回 1;否则返回 0。
提示:要避免修改数据范围并创建新数据范围,可以使用 replace_copy_if()
函数。
语法
replace_if( iterator start, iterator end, function condition, <type> replace );
<type>
指的是范围包含的数据类型。
参数值
参数 | 描述 |
---|---|
start | 必需。指向正在搜索的数据范围起点的迭代器。 |
end | 必需。指向正在搜索的数据范围终点的迭代器。将搜索该位置之前的元素,但该位置的元素不被包含在内。 |
condition | 必需。一个函数,它以数据范围中元素的值作为参数,并返回一个布尔值。 |
replace | 必需。替换值。 |
相关页面
在我们 数据结构教程 中了解更多关于数据结构的信息。
在我们 迭代器教程 中了解更多关于迭代器的信息。
在我们 算法教程 中了解更多关于算法的信息。