В преддверии старта занятий в новом потоке группы «Разработчик С++» подготовили перевод интересного материала.
Большинство
алгоритмов STL в C++ используют всего лишь одну функцию для выполнения некоторой работы над коллекцией. Например, чтобы извлечь все четные числа из коллекции, мы можем написать такой код:
auto const numbers = std::vector<int>{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
auto results = std::vector<int>{};
std::copy_if(begin(numbers), end(numbers), back_inserter(results), isMultipleOf2);
Предполагая, что у нас есть функция isMultipleOf2
:
bool isMultipleOf2(int n)
{
return (n % 2) == 0;
}
(В этом конкретном случае было бы проще использовать лямбду, но для моих целей удобнее написать простую функцию, чтобы проиллюстрировать следующую мысль, которая применяется к более сложным функциям, таким как те, которые используются при реализации счетчика слов в верблюжьей нотации).Читать полностью »