РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
388 of 815 menu

Функция 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,
    которая подсчитывает количество элементов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить