#include <iostream>
#include <algorithm>
#include <vector>
// The unary predicate used by replace_if to replace even numbers
bool IsEven (const int & nNum){
return ((nNum % 2) == 0);
}
int main (){
using namespace std;
// Initialize a sample vector with 6 elements
vector <int> v (6);
// fill first 3 elements with value 8
fill (v.begin (), v.begin () + 3, 8);
// fill last 3 elements with value 5
fill_n (v.begin () + 3, 3, 5);
for (size_t nIndex = 0; nIndex < v.size (); ++ nIndex){
cout << "Element [" << nIndex << "] = ";
cout << v [nIndex] << endl;
}
cout << "Using 'std::replace_if' to replace even values by -1" << endl;
replace_if (v.begin (), v.end (), IsEven, -1);
for (size_t nIndex = 0; nIndex < v.size (); ++ nIndex) {
cout << "Element [" << nIndex << "] = ";
cout << v [nIndex] << endl;
}
return 0;
}