如何在 C++ 中使用 accumulate() 计算向量的总和直到特定索引

How to calculate sum of a vector till a specific index using accumulate() in c++

我想知道是否有使用 accumulate() 执行向量求和直到特定索引。例子

vector<int> v ={1,2,3,4,5,6};
int sum = accumulate(v.begin(), till_index_4, 0);

我找到的所有示例都说 accumulate(v.begin(), v.end(), 0); 我也尝试使用迭代器,但我的代码未编译。如果有任何可能的解决方案,请告诉我。

C++ 标准库提供函数 std::next,它将一个迭代器带入一个序列,并产生另一个迭代器 n 步。对于 std::vector 迭代器,这是一个 O(1) 操作。

如果你知道向量中第n个位置是有效的,你可以按如下方式累加:

int sum = accumulate(v.begin(), std::next(v.begin(), 4), 0);