第十五週程序閱讀-範型程序設計(3)

/*
*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;
}

運行結果:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章