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