#include #include #include using namespace std; class Transformer { public: int operator() (int x, int y) { return (x+y)/2; } }; void main() { int numbers1[] = {0,1,2,3,4,5,6,7,8,9}; int numbers2[] = {10,11,12,13,14,15,16,17,18,19}; vector v; // copy numbers1 and numbers2 into a single range stored in v transform(&numbers1[0], &numbers1[sizeof(numbers1)/sizeof(int)], &numbers2[0], inserter(v, v.begin()), Transformer()); copy(v.begin(), v.end(), ostream_iterator(cout, " ")); }