// funadap.cpp -- using function adapters #include #include #include #include #include void Show(double); const int LIM = 6; int main() { using namespace std; double arr1[LIM] = {28, 29, 30, 35, 38, 59}; double arr2[LIM] = {63, 65, 69, 75, 80, 99}; vector gr8(arr1, arr1 + LIM); vector m8(arr2, arr2 + LIM); cout.setf(ios_base::fixed); cout.precision(1); cout << "gr8:\t"; for_each(gr8.begin(), gr8.end(), Show); cout << endl; cout << "m8: \t"; for_each(m8.begin(), m8.end(), Show); cout << endl; vector sum(LIM); transform(gr8.begin(), gr8.end(), m8.begin(), sum.begin(), plus()); cout << "sum:\t"; for_each(sum.begin(), sum.end(), Show); cout << endl; vector prod(LIM); transform(gr8.begin(), gr8.end(), prod.begin(), bind1st(multiplies(), 2.5)); cout << "prod:\t"; for_each(prod.begin(), prod.end(), Show); cout << endl; // cin.get(); return 0; } void Show(double v) { std::cout.width(6); std::cout << v << ' '; }