C++泛型算法中的accumulate
2015-11-20 11:41
423 查看
一些算法只会读取其输入范围内的元素,而从不改变元素。accumulate算法就是属于这种只读算法。它定义在头文件numeric中。accumulate函数接受三个参数,前两个指出了需要求和的元素的范围,第三个参数是和的初始值。假定vec是一个整数序列,则:
int sum=accumulate(vec.cbegin(),vec.cend(),0);
这条语句将sum设置为vec中元素的和,和的初始值为0,我们来写个程序验证一下:
我们向vector中输入1,2,3,4,5,运行的结果是15.
accumulate将第三个参数作为求和起点,这蕴含着一个编程假定:将元素类型加到和的类型上的操作必须是可行的。即:序列中的类型必须与第三个采纳数匹配,或者能够进行转换为第三个参数的类型。
int sum=accumulate(vec.cbegin(),vec.cend(),0);
这条语句将sum设置为vec中元素的和,和的初始值为0,我们来写个程序验证一下:
#include<iostream> #include<vector> #include<numeric> using namespace std; int main() { vector<int>v; int temp; while (cin >> temp) { v.push_back(temp); } int sum = accumulate(v.cbegin(), v.cend(), 0); cout << sum << endl; system("pause"); return 0; }我们来看下结果:
我们向vector中输入1,2,3,4,5,运行的结果是15.
accumulate将第三个参数作为求和起点,这蕴含着一个编程假定:将元素类型加到和的类型上的操作必须是可行的。即:序列中的类型必须与第三个采纳数匹配,或者能够进行转换为第三个参数的类型。
相关文章推荐
- VC++ CopyFile、MoveFile函数用法
- c语言之同余定理的应用求2001的2003次方除以13的余数
- C++内存泄漏
- 24.c/c++程序员面试宝典-多态
- C++类的常量对象与常量成员函数
- sscanf的使用
- c++通用模板类(template class)定义实现详细介绍
- 值得学习的C语言开源项目
- 2048游戏C语言代码
- c++STL 中的copy函数
- C++虚函数实现原理与代价
- 高效率、灵活打印结构体串(C语言版)
- 23.c/c++程序员面试宝典-类成员
- C++中int和string类型的相互转换
- C++88个注意点子之6~10
- C++ 学习(类的继承,派生)
- CPP中解决伪共享
- Scala 通过 JNI 连接 C++程序
- 今日学习札记——STL通用算法(11.20)
- 设计模式C++ (Composite组合模式)