C++走向远洋——66(十五周阅读程序)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年6月8日 * 版本号:V1.0 * 问题描述: * 程序输入:无 * 程序输出:见运行结果 */ #include <string> #include <set> #include <iterator> #include <iostream> using namespace std; int main() { set <string> strset; strset.insert("cantaloupes"); strset.insert("grapes"); strset.insert("apple"); strset.insert("orange"); strset.insert("banana"); strset.insert("grapes"); copy(strset.begin(), strset.end(), ostream_iterator<string>(cout, " ")); cout << endl; return 0; }
#include <functional> #include <numeric> #include <vector> #include <iostream> using namespace std; int main() { vector<int> v(5); for (int i = 0; i < 5; i++) v[i] = i + 1; int sum = accumulate(v.begin(), v.end(), 0); cout << "Sum of values == " << sum << endl; int product = accumulate(v.begin(), v.end(), 1, multiplies<long>()); cout << "Product of values == " << product << endl; return 0; }
#include <algorithm> #include <functional> #include <vector> #include <iostream> #include <numeric> #include <iterator> using namespace std; int main() { int a[] = {1,4,7,2,5,8}; int b[] = {1,2,3,3,2,1}; const int ASZ = sizeof a / sizeof a[0]; const int BSZ = sizeof b / sizeof b[0]; ostream_iterator<int> out(cout," "); copy(a, a + ASZ, out); cout<<endl; copy(b, b + BSZ, out); cout<<endl; int r = accumulate(a, a + ASZ, 0); cout << "accumulate 1: " << r << endl; // Should produce the same result: r = accumulate(b, b + BSZ, 0, plus<int>()); cout << "accumulate 2: " << r << endl; r = inner_product(a, a + ASZ, b, 0); // 或 r = inner_product(a, a + ASZ, b, 0, plus<int>(), multiplies<int>()); cout << "inner_product : " << r << endl; int* it = partial_sum(a, a + ASZ, b); // 或 int* it = partial_sum(a, a + ASZ, b, plus<int>()); copy(b, it, out); cout<<endl; it = adjacent_difference(a, a + ASZ, b); // 或 it = adjacent_difference(a, a + ASZ, b, minus<int>()); copy(b, it, out); cout<<endl; return 0; }