He is dead easy to write on his own:
template <class InputIterator, class OutputIterator, class Predicate> OutputIterator copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred) { return std::remove_copy_if(first,last,result,std::not1(pred)); }
Edit: This version works with all predicates:
template <class InputIterator, class OutputIterator, class Predicate> OutputIterator copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred) { while(first!=last) { if(pred(*first)) *result++ = *first; ++first; } return result; }
alex tingle Sep 19 '09 at 16:40 2009-09-19 16:40
source share