Функция accumulate
Функция accumulate вычисляет сумму всех элементов
диапазона, последовательно применяя операцию сложения
или заданную бинарную функцию. Первым и вторым параметром
функция принимает итераторы начала и конца диапазона,
третьим параметром - начальное значение суммы, а четвертым
(необязательным) - бинарную операцию, которую следует
применять вместо сложения.
Синтаксис
#include <numeric>
accumulate(first, last, init)
accumulate(first, last, init, op)
Пример
Давайте найдем сумму всех чисел вектора,
начиная с начального значения 0:
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
int res = accumulate(v.begin(), v.end(), 0);
cout << res << endl;
return 0;
}
Результат выполнения кода:
15
Пример
Давайте найдем сумму всех чисел вектора,
начиная с начального значения 100:
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
int res = accumulate(v.begin(), v.end(), 100);
cout << res << endl;
return 0;
}
Результат выполнения кода:
115
Пример
Давайте найдем произведение всех чисел вектора, передав в качестве операции умножение:
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
int res = accumulate(v.begin(), v.end(), 1, [](int a, int b) {
return a * b;
});
cout << res << endl;
return 0;
}
Результат выполнения кода:
120
Пример
Давайте объединим все строки вектора в одну, начиная с пустой строки:
#include <iostream>
#include <vector>
#include <string>
#include <numeric>
using namespace std;
int main()
{
vector<string> v = {"a", "b", "c", "d", "e"};
string res = accumulate(v.begin(), v.end(), string(""));
cout << res << endl;
return 0;
}
Результат выполнения кода:
"abcde"
Смотрите также
-
функция
reduce,
которая также сворачивает диапазон в одно значение -
функция
inner_product,
которая вычисляет скалярное произведение -
функция
partial_sum,
которая вычисляет частичные суммы -
функция
count,
которая подсчитывает количество элементов