Or login with:
#include <algorithm> template < class InputIterator, class OutputIterator, class Predicate, class Type > OutputIterator replace_copy_if( InputIterator first, InputIterator last, OutputIterator result, Predicate pred, const Type& val );
| Parameter | Description |
|---|---|
| first | An input iterator pointing to the position of the first element in the range from which elements are being replaced |
| last | An input iterator pointing to the position one past the final element in the range from which elements are being replaced |
| result | An output iterator pointing to the position of the first element in the destination range to which elements are being copied |
| pred | The unary predicate that must be satisfied is the value of an element is to be replaced |
| val | The new value being assigned to the elements whose old value satisfies the predicate |
pred instead of operator==.
to compare elements.(last - first) comparisons for equality and at most (last - first) assignments.#include <iostream> #include <list> #include <algorithm> #include <iterator> using namespace std; int main() { list<int> coll; INSERT_ELEMENTS(coll,2,6); INSERT_ELEMENTS(coll,4,9); PRINT_ELEMENTS(coll); //print all elements with value 5 replaced with 55 replace_copy(coll.begin(), coll.end(), //source ostream_iterator<int>(cout," "), //destination 5, //old value 55); //new value cout << endl; //print all elements with a value less than 5 replaced with 42 replace_copy_if (coll.begin(), coll.end(), //source ostream_iterator<int>(cout," "), //destination bind2nd(less<int>(),5), //replacement criterion 42); //new value cout << endl; //print each element while each odd element is replaced with 0 replace_copy_if (coll.begin(), coll.end(), // source ostream_iterator<int>(cout," "), // destination bind2nd (modulus<int>(),2), // replacement criterion 0); // new value cout << endl; return 0; }
You must login to leave a messge