C++ 泛型算法之 replace 和 replace_copy

replace算法:对输入序列做读写操作,将序列中特定值替换为新值。

relplace的四个参数:一对指定范围的迭代器和两个值,把第一个值替换为第二个值。

#include <algorithm>
replace(ilst.begin(), ilst.end(), old_val, new_val);  //把所有old_val值替换为new_val
这个调用将所有old_val替换为new_val。

如果不想改变原来的序列,则调用replace_copy。这个算法接受第三个迭代器实参,指定保存调整后序列的目标位置。

vector<int> ivec;
replace_copy(ilst.begin(), ilst.end(), back_inserter(ivec), 0, 12);

调用该函数后,ilst没有改变,ivec存储了ilst的一份副本,而ilst内的所有0在ivec中都变成了12。

此处的back_inserter是插入迭代器,更多相关例子见:http://blog.csdn.net/glp_hit/article/details/8112787

你可能感兴趣的:(C++ 泛型算法之 replace 和 replace_copy)