C++ Program to Demonstrate Unary Negater With logical_not Predicate

bookmark

#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <iomanip>
using namespace std;
 
void print(const vector <int>& v)
{
    vector <int>::const_iterator i;
    for (i = v.begin(); i != v.end(); i++)
    {
        cout << setw(2) <<  *i << " ";
    }
    cout << endl;
}
 
int main()
{
    int arr1[] = {0, 1, 1, 0, 1, 0, 0};
    vector <int> v(arr1 , arr1 + sizeof(arr1) / sizeof(int));
 
    cout << "Vector : ";
    print(v);
    cout << "Using logical_not predicate without not1" << endl;
    transform(v.begin(), v.end(), v.begin(), logical_not<int>());
    cout << "Vector : ";
    print(v);
    cout << "Using logical_not predicate with not1" << endl;
    transform(v.begin(), v.end(), v.begin(), not1(logical_not<int>()));
    cout << "Vector : ";
    print(v);
}

 

Output:
Vector :  0  1  1  0  1  0  0 
Using logical_not predicate without not1
Vector :  1  0  0  1  0  1  1 
Using logical_not predicate with not1
Vector :  1  0  0  1  0  1  1