Основное отличие алгоритмов copy и copy_if заключается в их функциональности.
Copy копирует все элементы из входного диапазона в выходной. 14 При этом он не добавляет новые элементы самостоятельно, а перезаписывает существующие в выходном контейнере. 1
Copy_if, в свою очередь, копирует только определённые элементы списка, согласно заданному условию. 12 Для этого используется дополнительный аргумент — функция, которая возвращает логическое значение. 2 Если она возвращает true, то элемент копируется, если false — не копируется. 2
Таким образом, copy выполняет общее копирование, а copy_if — копирование с учётом конкретного условия.