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

Функция reduce

Функция reduce выполняет свертку элементов диапазона в одно значение. Она последовательно применяет бинарную операцию к элементам и накопленному результату. В первом и втором параметрах мы передаем итераторы начала и конца диапазона, в третьем - начальное значение аккумулятора, а в четвертом - бинарную операцию. Если операция не задана, используется сложение.

Синтаксис

reduce(first, last, init, [op]) reduce(first, last, [op])

Пример

Давайте найдем сумму элементов вектора, используя reduce с начальным значением 0:

#include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; int res = reduce(v.begin(), v.end(), 0); cout << res << endl; return 0; }

Результат выполнения кода:

15

Пример

Давайте найдем произведение элементов вектора, передав в качестве операции умножение:

#include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; int res = reduce(v.begin(), v.end(), 1, multiplies<int>()); cout << res << endl; return 0; }

Результат выполнения кода:

120

Пример

Давайте найдем максимальный элемент вектора, используя reduce с функцией max:

#include <iostream> #include <vector> #include <numeric> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; int res = reduce(v.begin(), v.end(), 0, [](int a, int b) { return max(a, b); }); cout << res << endl; return 0; }

Результат выполнения кода:

5

Смотрите также

  • функция accumulate,
    которая вычисляет сумму элементов диапазона
  • функция inner_product,
    которая вычисляет скалярное произведение двух диапазонов
  • функция partial_sum,
    которая вычисляет частичные суммы элементов
  • функция transform,
    которая применяет операцию к каждому элементу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить