function object 仿函数 //stl/ foreach2.cpp/**//*using function object*/#include <iostream>#include <vector>#include <algorithm>using namespace std;/**//*function object(仿函数,函数对象)*/class PrintInt...{public: void operator() (int elem) const...{ cout << elem<<' '; }};int main()...{ vector<int> coll; for(int i =1; i<= 9; ++i) coll.push_back(i); for_each(coll.begin(),coll.end(),PrintInt()); cout<<endl;}// result /**//*1 2 3 4 5 6 7 8 9*/ //stl/add1.cpp/**//*using function object*/#include <iostream>#include <list>#include <algorithm>#include "print.h"using namespace std;/**//*function object AddValue*/class AddValue...{public: AddValue(int v): theValue(v) ...{} void operator() (int & elem) const ...{ elem += theValue; }private: int theValue;};int main()...{ list<int> coll; for(int i = 1; i<=9; ++i) ...{ coll.push_back(i); } PRINT_ELEMENTS(coll,"initialized: "); for_each(coll.begin(),coll.end(),AddValue(10)); PRINT_ELEMENTS(coll,"after adding 10:"); for_each(coll.begin(),coll.end(),AddValue(*coll.begin())); PRINT_ELEMENTS(coll,"after adding first element:"); return 1;}// result/**//*initialized: 1 2 3 4 5 6 7 8 9after adding 10:11 12 13 14 15 16 17 18 19after adding first element:22 23 24 25 26 27 28 29 30*/