C++ 算法 replace_if() 函数
定义和用法
replace_if()
函数将数据范围内所有满足指定条件的元素替换为另一个值。
数据范围由迭代器指定。
条件由一个函数指定,该函数接收元素的值作为参数,并返回一个布尔值(若条件满足则返回 1,否则返回 0)。
提示:若希望不修改原数据范围,而是创建一个新的数据范围,可以使用 replace_copy_if()
函数。
实例
将包含字母 "o" 的汽车品牌替换为 "Toyota":
bool has_o(string item) { return item.find('o') != string::npos; } int main() { vector<string> cars = {"Volvo", "BMW", "Ford", "Tesla"}; replace_if(cars.begin(), cars.end(), has_o, (string)"Toyota"); for (string car : cars) { cout << car << "\n"; } return 0; }
语法
replace_if(iterator start, iterator end, function condition, <type> replace);<type> 表示数据范围所包含的元素类型。
参数
参数 | 描述 |
---|---|
start | 必需。指向数据范围起始位置的迭代器。 |
end | 必需。指向数据范围结束位置的迭代器(包含该位置之前的元素,但不包含该位置的元素)。 |
condition | 必需。函数,接收数据范围内的元素值作为参数,并返回布尔值。 |
replace | 必需。替换值。 |
相关页面
教程:C++ 数据结构
教程:C++ 迭代器
教程:C++ 算法