#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
template <class Arg>
class isEven: public std::unary_function<Arg, bool> {
public:
result_type operator() (argument_type i) {
return (result_type) !(i % 2);
}
};
int main() {
std::vector<int> v;
for (int i = 0; i < 20; i++) v.push_back(i);
for (int i = 0; i < v.size(); i++) std::cout << v[i] << " ";
std::cout << std::endl;
int i = count_if(v.begin(), v.end(), isEven<int>());
std::cout << "i = " << i << std::endl;
return 0;
}
/* end */