//test some algorithms using function objects (gen and odd). #include #include #include #include using namespace std; class Generator{ private: int i; public: Generator (){i =0;}//constructor int operator() () { return ++i; } int get()const{return i;} void set(int i0 = 0){i=i0;} } ; class Modulus{ private: int modulus; Modulus():modulus(2){} public: Modulus(int m):modulus(m){} bool operator() (int i){ return i%modulus;} } ; void print(vector v) { copy(v.begin(), v.end(), ostream_iterator(cout, "\t")); cout << endl; } int main() { Generator gen; Modulus odd(2); vector v(10); fill(v.begin(), v.end(), 26); print(v); generate(v.begin(), v.end(), gen); print(v); cout << gen.get() <result(10); replace_copy_if(v.begin(), v.end(), result.begin(), odd, 42); print(v); print(result); }