replace | function template |
template < class ForwardIterator, class T > void replace ( ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value ); | <algorithm> |
Replace value in range
Sets all the elements in the range [first,last) whose current value equals old_value to a value of new_value.
The behavior of this function template is equivalent to:
template < class ForwardIterator, class T > void replace ( ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value ) { for (; first != last; ++first) if (*first == old_value) *first=new_value; } |
Parameters
-
first, last
-
Forward iterators to the initial and final positions in a sequence. The range used is
[first,last), which contains all the elements between
first and
last, including the element pointed by
first but not the element pointed by
last.
#include<iostream> #include<algorithm> #include<vector> using namespace std; class student{ public: int key; int value; bool operator==(student s){ return value==s.value; } }; int main(){ vector<student>vec(5); vec[0].key=1; vec[0].value=1; vec[1].key=2; vec[1].value=2; vec[2].key=2; vec[2].value=2; vec[3].key=3; vec[3].value=3; vec[4].key=4; vec[4].value=4; vector<student>::iterator it; replace(vec.begin(),vec.end(),vec[2],vec[4]); for(it=vec.begin();it!=vec.end();it++) cout<<(*it).value<<endl; }
old_value
- Value to be replaced. new_value
- Replacement value.