迭代器是一个行为类似于指针的模板类对象。只需要迭代器iter指向一个有效对象,就可以通过使用*iter解引用的方式来获取一个对象的引用。通常会使用一对迭代器来定义一段元素,可以是任意支持迭代器对象的元素,一段元素是一个通过起始迭代器指向第一个元素,通过结束迭代器指向最后一个元素的后一个位置的元素序列。一般使用std::begin()和std::end()来获取容器的迭代器。
#include <numeric> #include <iostream> #include <iterator> using namespace std; int main(){ double data[] {2.5,4.5,6.5,5.5,8.5}; cout<<"The array contains: \n"; for(auto iter = std::begin(data) ;iter != std::end(data) ; ++iter){ cout << *iter << " "; } double total = std::accumulate(std::begin(data),std::end(data),0.0); cout <<"\n"<< total << endl; return 0; }
std::accumulate()表示计算std::begin()到std::end()之间的元素的总和,并且起始值设置为0.