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.