第15周阅读程序(3)

来源:互联网 发布:matlab怎么遍历数组 编辑:程序博客网 时间:2024/05/16 05:12
/*  * Copyright(c)2016,烟台大学计算机与控制工程学院  * All rights reserved.  * 文件名称:第15周阅读程序(3)  * 作者:马康泰 * 完成日期:2016.6.8  * 版本号:v1.0  *  * 问题描述:阅读下面的程序,对照运行结果,领会STL的用法  * 输入描述: * 程序输出:  */   #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;  } 

0 0
原创粉丝点击