The function remove_copy_if is used to remove elements that do not match a criteria while doing a copy.
template<class InputIterator, class OutputIterator, class Predicate> OutputIterator remove_copy_if (InputIterator first, InputIterator last, OutputIterator result, Predicate pred);
The end of the resulting range is returned.