reduce из C++17 заменяет связку накопления с явным началом: он схлопывает диапазон через переданную функцию. Для суммы передайте лямбду сложения.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpAgRd 94 of 696 menu
◀ ▶

Свертка диапазона в C++

Алгоритм reduce из C++17 заменяет связку накопления с явным началом: он схлопывает диапазон через переданную функцию.

Для суммы передайте лямбду сложения. Пустой диапазон ведет себя иначе, чем у accumulate - следите за версией стандарта. Запишем вектор и выведем произведение:

#include <iostream> #include <numeric> #include <vector> int main() { std::vector<int> nums = {2, 3, 4}; int prod = std::reduce(nums.begin(), nums.end(), 1, [](int a, int b) { return a * b; }); std::cout << prod << "\n"; return 0; }

Сверните вектор {5, 2, 2} алгоритмом reduce с началом 0 и сложением, выведите сумму.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить