std::replace
简介:
replace() 算法会用新的值来替换和给定值相匹配的元素。
函数原型
template <class ForwardIterator, class T>
void replace (ForwardIterator first, ForwardIterator last,
const T& old_value, const T& new_value);
官方手册
http://www.cplusplus.com/reference/algorithm/replace/
std::replace_if
简介:
将满足条件的值替换为新值。
函数原型
template <class ForwardIterator, class UnaryPredicate, class T>
void replace_if (ForwardIterator first, ForwardIterator last,
UnaryPredicate pred, const T& new_value );
官方手册
http://www.cplusplus.com/reference/algorithm/replace_if/
使用示例:
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
#include <functional>
using namespace std;
void main()
{
vector<int> v1;
int dim[] = { 1,2,3,4,5,6,7,8,9 };
cout << "【原始v1】" << endl;
v1.assign(dim, dim + 9);
copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, ", "));
cout << endl;
cout << "【将第7个数替换为99】" << endl;
replace(v1.begin(), v1.end(), 7, 99);
copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, ", "));
cout << endl;
cout << "【将小于6的数替换为11】" << endl;
replace_if(v1.begin(), v1.end(), bind2nd(less<int>(), 6), 11);
copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, ", "));
cout << endl;
}