Using 'std::replace_if' to replace even values by -1 : replace if « STL Algorithms Modifying sequence operations « C++ Tutorial






#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;
}








24.12.replace if
24.12.1.std::replace_if with predicate
24.12.2.Replace value equal to 70 with 42 in a deque
24.12.3.Using 'std::replace_if' to replace even values by -1
24.12.4.Replace values greater than 9 in a vector with 100 with replace_if()