diff --git a/modules/09_cpp11/src/auto_and_range_for.cpp b/modules/09_cpp11/src/auto_and_range_for.cpp index 7830dc8..6d809ca 100644 --- a/modules/09_cpp11/src/auto_and_range_for.cpp +++ b/modules/09_cpp11/src/auto_and_range_for.cpp @@ -1,20 +1,26 @@ #include "auto_and_range_for.hpp" +#include + namespace cpp11 { auto double_values(const std::vector& input) -> std::vector { - (void)input; - return {}; + auto result = std::vector{}; + result.reserve(input.size()); + std::ranges::for_each(input, [&result](const int value) { result.push_back(value * 2); }); + return result; } auto join_with_auto(const std::vector& parts) -> std::string { - (void)parts; - return {}; + auto result = std::string{}; + std::ranges::for_each(parts, [&result](const std::string& part) { result += part; }); + return result; } auto count_if_positive(const std::vector& input) -> int { - (void)input; - return 0; + auto count = 0; + std::ranges::for_each(input, [&count](const int value) { if (value > 0) ++count; }); + return count; } } // namespace cpp11