c++ - 使用 std::accumulate 计算部分 vector 的总和

标签 c++ vector accumulate

有这个 vector

vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

如何使用 accumulate 计算它的前半部分的总和(即 15)功能?

我可以使用仅带有迭代器(而不是数字索引)的 for 循环来做到这一点吗?

最佳答案

你可以

accumulate(v.begin(), v.begin()+int(v.size()/2), 0)

如果 v 是您的 vector 。

你也可以写一个循环:

int sum = 0;
for (vector<int>::iterator it = v.begin(); it != v.begin+int(v.size()/2); ++it) {
    sum += *it;
}

关于c++ - 使用 std::accumulate 计算部分 vector 的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091740/

相关文章:

c++ - 分配 vector

c++成员函数指针问题

c++ - 什么是 ABI,为什么 C++ 没有标准的 ABI,如果有又有什么关系呢?

c++ - 使用 'this' 关键字从 vector 中删除元素

c++ - 使用累加对包含 long long int 的 vector 求和

java - 在 drools 中使用相当于 'not exists' 的值

c++ - 为什么循环给出的结果与累积的结果不同?

静态变量的 C++ 引用

c++ - c++中int数组周围的堆栈损坏错误

c++ - 结构 vector C++