Files
cpp-course/modules/09_cpp11/src/auto_and_range_for.cpp
T

27 lines
773 B
C++
Raw Normal View History

2026-08-11 17:40:36 +03:00
#include "auto_and_range_for.hpp"
2026-08-17 21:30:16 +03:00
#include <algorithm>
2026-08-11 17:40:36 +03:00
namespace cpp11 {
auto double_values(const std::vector<int>& input) -> std::vector<int> {
2026-08-17 21:30:16 +03:00
auto result = std::vector<int>{};
result.reserve(input.size());
std::ranges::for_each(input, [&result](const int value) { result.push_back(value * 2); });
return result;
2026-08-11 17:40:36 +03:00
}
auto join_with_auto(const std::vector<std::string>& parts) -> std::string {
2026-08-17 21:30:16 +03:00
auto result = std::string{};
std::ranges::for_each(parts, [&result](const std::string& part) { result += part; });
return result;
2026-08-11 17:40:36 +03:00
}
auto count_if_positive(const std::vector<int>& input) -> int {
2026-08-17 21:30:16 +03:00
auto count = 0;
std::ranges::for_each(input, [&count](const int value) { if (value > 0) ++count; });
return count;
2026-08-11 17:40:36 +03:00
}
} // namespace cpp11