Код работает, но выглядит... не очень. С++20 даёт нам крутые инструменты для упрощения.
#include <vector>
#include <algorithm>
#include <iostream>
std::vector<int> filterAndTransform(const std::vector<int>& input) {
std::vector<int> filtered;
for (const auto& val : input) {
if (val % 2 == 0) {
filtered.push_back(val);
}
}
std::vector<int> result;
for (const auto& val : filtered) {
result.push_back(val * val);
}
return result;
}
Задача: Перепиши эту функцию используя ranges (C++20).
Бонус: Можно ли избежать промежуточных копирований?
✏️ Покажи свою версию в комментариях.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик