C++ algorithm replace_if() function
Example
Replace cars that have the letter "o" with "Toyota":
bool has_o(string item) {
return item.find('o') != string::npos;
}
int main() {
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
replace_if(cars.begin(), cars.end(), has_o, (string)"Toyota");
for (string car : cars) {
cout << car << "\n";
}
return 0;
}
Try it Yourself »
Definition and Usage
The replace_if()
function replaces all elements of a data range that match a specified condition with a different value.
The range of data is specified by iterators.
The condition is specified by a function that takes the value of an element as an argument and returns a boolean value which is 1 if the condition is matched and 0 if the condition is not matched.
Tip: To avoid modifying the data range and create a new data range instead, you can use the replace_copy_if()
function.
Syntax
replace_if( iterator start, iterator end, function condition, <type> replace );
<type>
refers to the type of the data that the range contains.
Parameter Values
Parameter | Description |
---|---|
start | Required. An iterator pointing to the start of the data range being searched. |
end | Required. An iterator pointing to the end of the data range being searched. Elements up to this position will be searched, but the element at this position will not be included. |
condition | Required. A function that takes the value of an element in the data range as an argument and returns a boolean value. |
replace | Required. The replacement value. |
Related Pages
Read more about data structures in our Data Structures Tutorial.
Read more about iterators in our Iterators Tutorial.
Read more about algorithms in our Algorithms Tutorial.