std::replace_copy, std::replace_copy_if
Template:cpp/algorithm/sidebar Template:ddcl list begin
<algorithm>
template< class InputIterator, class OutputIterator, class T >
OutputIterator replace_copy( InputIterator first,
InputIterator last,
OutputIterator d_first,
const T& old_value,
const T& new_value );
(1)
template< class InputIterator, class OutputIterator, class UnaryPredicate, class T >
OutputIterator replace_copy_if( InputIterator first,
InputIterator last,
OutputIterator d_first,
UnaryPredicate p,
const T& new_value );
(2)
Template:ddcl list end
Copies the all elements from the range [first, last) to another range beginning at d_first replacing all elements satisfying specific criteria with new_value. The first version replaces the elements that are equal to old_value, the second version replaces elements for which predicate p returns Template:cpp. The source and destination ranges cannot overlap.
Parameters
| first, last | - | the range of elements to copy |
| d_first | - | the beginning of the destination range |
| old_value | - | the value of elements to replace |
| p | - | unary predicate which returns true if the element value should be replaced. The expression |
| new_value | - | the value to use as replacement |
Return value
iterator to the element past the last element copied.
Complexity
Exactly last - first applications of the predicate.