From 7a8e4309828e8375f1258578e8127e869b5af2bf Mon Sep 17 00:00:00 2001 From: studiosi Date: Sun, 16 Aug 2026 12:15:10 +0300 Subject: [PATCH] Solved: 28 - Algorithm Lambdas --- .../src/algorithm_lambdas.cpp | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) 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; }