第十五周项目—阅读程序(3)

来源:互联网 发布:社交网络 肖恩帕克 编辑:程序博客网 时间:2024/05/22 07:52
/**Copyright(c) 2016.烟台大学计算机与控制工程学院*ALL rights  reserved.*文件名称:test.cpp*作者:杨驰*完成日期:2016年6月5*问题描述:阅读下面的程序*/#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;}

运行结果:

知识总结:

 STL提供了4个通用数值算法,此类算法包含头文件<numeric>。

                                                   数值算法列表

  算法名称                                                             功能

accumulate                                           计算序列中所有元素的和

partial_sum                                           累加序列中部分元素的值,并将结果保存在另一个序列中

adjacent_difference                              计算序列中相邻元素的差,并将结果保存在另一个序列中

inner_product                                       累加两个序列对应元素的乘积,也就是序列的内积


0 0
原创粉丝点击