在c++中,可以使用replace替换序列里面某些特定的值。
void replace(_FwdIt _First, _FwdIt _Last, const _Ty& _Oldval, const _Ty& _Newval);
很明显在replace中有四个参数,第一和第二个参数是将要替换的序列的开头和结尾。例如vector<int> 的对象ivec,ivec.begin(),和ivec.end()这两个参数。而第三个参数是要替换序列中的值,第四个就是替换后的新值。
如果说想要在替换之后保留原有的序列,那么可以使用replace_copy这个函数来:
_OutIt replace_copy(_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty& _Oldval, const _Ty& _Newval)
在replace_copy中的前面两个参数跟replace是一样的,而第三个参数就是保存替换之前的序列。这里可以使用back_inserter()来进行输出序列。例如back_inserter(ivec)。
而第四个和第五个跟replace函数里面的第三个第四个是一样的。