Defined in header <algorithm> template< class InputIt, class OutputIt >
OutputIt copy( InputIt first, InputIt last, OutputIt d_first ); (1) template< class InputIt, class OutputIt, class UnaryPredicate >
OutputIt copy_if( InputIt first, InputIt last,
OutputIt d_first,
UnaryPredicate pred ); (2) (since C++11)
Copies the elements in the range, defined by [first, last), to another range beginning at d_first. The second func