#include <algorithm>
    output_iterator copy( input_iterator start, input_iterator end, output_iterator dest );

The copy function copies the elements between start and end to dest. In other words, after copy has run,

   *dest = *start
   *(dest+1) = *(start+1)
   *(dest+2) = *(start+2)
   *(dest+N) = *(start+N)

The return value is the position in the destination range after the last element copied (i.e. dest+N+1). copy runs in linear time.

For example, the following code uses copy to both copy the contents of one vector to another and to display the resulting vector:

   vector<int> from_vector;
   for( int i = 0; i < 10; i++ ) {
     from_vector.push_back( i );
   vector<int> to_vector(10);
   copy( from_vector.begin(), from_vector.end(), to_vector.begin() );
   cout << "to_vector contains: ";
   copy( to_vector.begin(), to_vector.end(), ostream_iterator<int>( cout, " " ) );
   cout << endl;

Related Topics: copy_backward, copy_n, generate, remove_copy, swap, transform