C++ algorithm replace_copy_if() function
Example
Create a copy of a vector where values that have the letter "o" are replaced with "Toyota":
bool has_o(string item) {
return item.find('o') != string::npos;
}
int main() {
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
vector<string> newcars(4);
replace_copy_if(cars.begin(), cars.end(), newcars.begin(), has_o, (string)"Toyota");
for (string car : newcars) {
cout << car << "\n";
}
return 0;
}
Try it Yourself »
Definition and Usage
The replace_copy_if() function creates a copy of a data range where all elements that match a specified condition are replaced 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.
Syntax
replace_copy_if(iterator start, iterator end, iterator destination, 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. |
| end | Required. An iterator pointing to the end of the data range. Elements up to this position will be included, but the element at this position will not be. |
| destination | Required. An iterator pointing to the start of the data range that the data will be copied to. |
| 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. |
Technical Details
| Returns: | An iterator pointing to the end of the destination data range. |
|---|
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.