“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.