您的位置:首页 > 其它

第十五周程序阅读-范型程序设计(3)

2016-06-06 14:40 330 查看
/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All rights reserved
*文件名称:123.cpp
*作    者:王蕊
*完成日期:2016年6月6日
*版 本 号: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;
//Shoule 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;
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: