VOOZH about

URL: https://www.geeksforgeeks.org/cpp/stdreplace-stdreplace_if-c/

⇱ std::replace and std::replace_if in C++ - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

std::replace and std::replace_if in C++

Last Updated : 26 Apr, 2022

std::replace

Assigns new_value to all the elements in the range [first, last) that compare to old_value. The function use operator == to compare the individual elements to old_value 

Function Template : 

void replace (ForwardIterator first, 
 ForwardIterator last,
 const T& old_value,
 const T& new_value)
first, last : 
Forward iterators to the initial and final positions
in a sequence of elements.
old_value : Value to be replaced.
new_value : Replacement value.

Return Value : 
This function do not return any value. If elements that needs to be replace is found then element 
replaced otherwise remain unchanged. 

Examples: 

Input : 10 20 30 30 20 10 10 20 
Output : 10 99 30 30 99 10 10 99 
// Replaced value 20 in vector to 99.

Input : 3 5 7 8 9 5 4 
Output : 3 5 7 12 9 5 4 
// Replaced value 8 by 12.

Output
Original Array: 10 20 30 30 20 10 10 20
New Array: 10 99 30 30 99 10 10 99

std::replace_if

Assigns new_value to all the elements in range [first, last) for which pred returns true. 
Function Template :  

void replace_if (ForwardIterator first, ForwardIterator last,
 UnaryPredicate pred, const T& new_value)
first, last : Forward iterators to the initial and final positions
in a sequence of elelments.
pred : Unary function that accepts an element in the range as argument, and
returns a value convertible to bool.The returned value indicate whether
the element is to be replaced (if true, it is replaced).
The function shall not modify its argument.
old_value : Value to be replaced.
new_value : Replacement value. 

Examples: 

Input : 1 2 3 4 5 6 7 8 9 10 
Output : 0 2 0 4 0 6 0 8 0 10 
// Replaced all odd values to 0.

Input : 10 20 30 30 20 10 10 20 
Output : 10 4 30 30 4 10 10 4 
// Replaced all number divisible by 4 to 4.

Output
Original Array: 1 2 3 4 5 6 7 8 9 10
New Array: 0 2 0 4 0 6 0 8 0 10

Also you can add any kind of function in std::replace_if that can only have one argument only.
 

Comment
Article Tags: