From e907849c575e211cac39ee2772aa2a821b67ae7e Mon Sep 17 00:00:00 2001 From: studiosi Date: Mon, 24 Aug 2026 19:20:50 +0300 Subject: [PATCH] Solved: 49 - Ranges Zip --- modules/13_cpp23/src/ranges_zip.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/13_cpp23/src/ranges_zip.cpp b/modules/13_cpp23/src/ranges_zip.cpp index 45b59e3..edc71bf 100644 --- a/modules/13_cpp23/src/ranges_zip.cpp +++ b/modules/13_cpp23/src/ranges_zip.cpp @@ -3,19 +3,23 @@ namespace cpp23 { auto zip_sum(const std::vector& a, const std::vector& b) -> std::vector { - (void)a; (void)b; - return {}; + return std::views::zip_transform(std::plus{}, a, b) + | std::ranges::to(); } -auto chunk_strings(const std::vector& words, std::size_t chunk_size) - -> std::vector> { - (void)words; (void)chunk_size; - return {}; +auto chunk_strings(const std::vector& words, const std::size_t chunk_size) -> std::vector> { + return words + | std::views::chunk(chunk_size) + | std::views::transform([](const auto& chunk) { + return chunk | std::ranges::to>(); + }) + | std::ranges::to>>(); } auto adjacent_differences(const std::vector& data) -> std::vector { - (void)data; - return {}; + return data + | std::views::adjacent_transform<2>([](const int x, const int y) { return y - x; }) + | std::ranges::to>(); } } // namespace cpp23