transform_reduce комбинирует map и reduce: унарная функция меняет элемент, бинарная - объединяет значения.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpAgTd 95 of 696 menu
◀ ▶

Преобразование и свертка в C++

Алгоритм transform_reduce комбинирует map и reduce: унарная функция меняет элемент, бинарная - объединяет значения.

Можно задать начальное значение и отдельную операцию редукции. Подключите #include <numeric>. Запишем длины строк и выведем сумму квадратов длин:

#include <iostream> #include <numeric> #include <string> #include <vector> int main() { std::vector<std::string> words = {"a", "bb", "ccc"}; int total = std::transform_reduce( words.begin(), words.end(), 0, [](int a, int b) { return a + b; }, [](const std::string& s) { return (int)s.size() * (int)s.size(); }); std::cout << total << "\n"; return 0; }

Для вектора {1, 2, 3, 4} посчитайте transform_reduce с унарной функцией удвоения и сложением, начало 0, выведите ответ.

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