diff --git a/modules/08_stl_algorithms/src/algorithm_lambdas.cpp b/modules/08_stl_algorithms/src/algorithm_lambdas.cpp index a25941d..4fff644 100644 --- a/modules/08_stl_algorithms/src/algorithm_lambdas.cpp +++ b/modules/08_stl_algorithms/src/algorithm_lambdas.cpp @@ -1,20 +1,29 @@ #include "algorithm_lambdas.hpp" +#include + namespace stl_algorithms { auto filter_length(const std::vector& words, std::size_t min_len) -> std::vector { - (void)words; (void)min_len; - return {}; + const auto is_valid = [min_len](const auto& word) { return word.size() >= min_len; }; + auto r = std::vector(); + std::ranges::copy_if(words,std::back_inserter(r), is_valid); + return r; } auto map_to_lengths(const std::vector& words) -> std::vector { - (void)words; - return {}; + auto r = std::vector(); + for (const auto& word : words) { + r.push_back(static_cast(word.size())); + } + return r; } -auto first_match(const std::vector& data, int threshold) -> int { - (void)data; (void)threshold; +auto first_match(const std::vector& data, const int threshold) -> int { + for (const auto& value : data) { + if (value >= threshold) return value; + } return -1; }