replace_copy replace_copy_if
时间: 2023-09-02 18:14:21 浏览: 91
`replace_copy`函数和`replace_copy_if`函数都是C++标准库中的算法函数,用于将一个序列中的元素替换成另一个元素。
`replace_copy`函数将一个序列中的所有与指定值相等的元素替换为另一个值,并将替换后的结果存入另一个序列中。函数原型如下:
```cpp
template <class InputIt, class OutputIt, class T>
OutputIt replace_copy(InputIt first, InputIt last, OutputIt d_first, const T& old_value, const T& new_value);
```
其中,`first`和`last`表示要替换元素的输入序列的起始和终止迭代器,`d_first`表示替换后的输出序列的起始迭代器,`old_value`表示要替换的旧值,`new_value`表示替换后的新值。该函数返回替换后的输出序列的结束迭代器。
`replace_copy_if`函数则将一个序列中满足指定条件的所有元素替换为另一个值,并将替换后的结果存入另一个序列中。函数原型如下:
```cpp
template <class InputIt, class OutputIt, class UnaryPredicate, class T>
OutputIt replace_copy_if(InputIt first, InputIt last, OutputIt d_first, UnaryPredicate p, const T& new_value);
```
其中,`first`和`last`表示要替换元素的输入序列的起始和终止迭代器,`d_first`表示替换后的输出序列的起始迭代器,`p`表示指定的条件,`new_value`表示替换后的新值。该函数返回替换后的输出序列的结束迭代器。
总的来说,`replace_copy`函数和`replace_copy_if`函数都是非破坏性算法,即它们不会改变输入序列,而是将替换后的结果保存在新的输出序列中。