📅  最后修改于: 2023-12-03 14:59:45.532000             🧑  作者: Mango
replace_if()函数定义
C++ STL(标准模板库)中的algorithm头文件中提供了replace_if()函数,其定义如下:
template<class ForwardIt, class UnaryPredicate, class T>
void replace_if(ForwardIt first, ForwardIt last, UnaryPredicate p, const T& new_value);
ForwardIt
:表示迭代器类型,指向容器中第一个元素的迭代器。UnaryPredicate
:表示谓词(一元函数对象)类型,接受一个参数并返回bool值的函数或函数对象。T
:表示新值的类型,将要替换指定元素的新值。first
:表示容器中第一个需要替换的元素。last
:表示容器中最后一个需要替换的元素(不包含这个迭代器指向的元素)。p
:表示谓词函数对象,指定需要替换的元素。new_value
:表示新的值,需要用来替换指定元素的值。replace_if()函数功能
replace_if()函数用于将满足谓词p的元素在[first,last)区间内替换为new_value。其中,new_value表示新值。replace_if()函数按照以下步骤执行:
replace_if()函数使用示例
下面是一个示例程序,演示了使用replace_if()函数将vector容器中大于3的元素替换为0。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9};
std::replace_if(v.begin(), v.end(), [](int i){ return i > 3; }, 0);
for(auto i : v) {
std::cout << i << ' ';
}
std::cout << std::endl;
return 0;
}
输出结果为:
1 2 3 0 0 0 0 0 0
replace_if()函数是C++ STL中的一个实用函数,可用于将容器中满足特定条件的元素替换为新的值。使用起来非常方便,同时也能提高程序的代码质量。