Накопление
Накопление, или аккумуляция — это перебор заданного диапазона контейнера с суммированием (иди перемножением, или какой-то иной комбинацией) элементов в некоторой итоговой переменной. По умолчанию выполняется суммирование:
#include <numeric> double sum = accumulate(v.begin (), v.end(), 0.0);

Третий параметр алгоритма — начальное значение аккумулятора. При суммировании это обычно ноль. В качестве четвертого параметра можно задать функциональный объект, определяющий аккумулирующую операцию. Вот, например, как вычисляется произведение всех элементов вектора:
#include <numeric>
#include <functional>
double product = accumulate(v.begin(), v.end(),
1.0, multiplies<double> ());