如何在 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);
我想知道是否有使用 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);