1.功能:将容器区间内满足条件的元素替换为指定元素
2.函数原型
- replace_if (iterator beg, iterator end, _pred, newvalue)
- beg,end 开始,结束迭代器
- _pred 谓词
- newvalue 替换的新元素
#include<iostream> #include<vector> #include<algorithm> #include<ctime> using namespace std; class myprint { public: void operator()(int val) { cout << val << " "; } }; class greater5 { public: bool operator()(int val) { return val > 5; } }; void test1() { vector<int> v; v.push_back(2); v.push_back(8); v.push_back(6); v.push_back(5); v.push_back(4); v.push_back(2); v.push_back(2); cout << "替换前:" << endl; for_each(v.begin(), v.end(), myprint()); //遍历容器v 2 8 6 5 4 2 2 cout << endl; //将大于5的数替换为0 cout << "替换后:" << endl; replace_if(v.begin(), v.end(), greater5(), 0); for_each(v.begin(), v.end(), myprint()); //遍历容器v 2 0 0 5 4 2 2 cout << endl; } int main() { test1(); return 0; }