Изучение алгоритма copy_if в C++: выборочное копирование элементов на основе условия

“copy_if” — это алгоритм C++, который позволяет выборочно копировать элементы из исходного контейнера в целевой контейнер на основе заданного условия. Он является частью стандартной библиотеки C++ и определяется в заголовке .

Вот пример использования алгоритма copy_if:

#include <algorithm>
#include <vector>
int main() {
    std::vector<int> source = {1, 2, 3, 4, 5};
    std::vector<int> destination;
    // Copy only the even numbers from the source to the destination
    std::copy_if(source.begin(), source.end(), std::back_inserter(destination), [](int num) {
        return num % 2 == 0;
    });
    // Print the elements in the destination vector
    for (int num : destination) {
        std::cout << num << " ";
    }
    return 0;
}

Выход:

2 4

В этом примере алгоритм «copy_if» используется для копирования только четных чисел из вектора источникв вектор назначение. Условие num % 2 == 0проверяет, является ли число четным. Итератор std::back_inserterиспользуется для вставки скопированных элементов в конец вектора destination.