C++ Standard Library C++ STL Library

C++ <algorithm> - copy() Function



The C++ algorithm::copy function is used to copy all elements in the range [first, last) to the range starting at result.

Syntax

template <class InputIterator, class OutputIterator>
  OutputIterator copy (InputIterator first, 
                       InputIterator last, 
                       OutputIterator result);

Parameters

first Specify initial position of the input iterator. The range used is [first,last).
last Specify final position of the input iterator. The range used is [first,last).
result Specify initial position of the output iterator where the result to be stored.

Return Value

Returns an iterator pointing to the element that follows the last element copied to result sequence.

Time Complexity

Linear i.e, Θ(n).

Example:

In the example below, the algorithm::copy function is used to copy all elements of an array to a vector.

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
int main (){
  int arr[] = {10, 20, 30};
  vector<int> vec = {1, 1, 1, 1, 1};
  vector<int>::iterator it;

  //copy all elements from array to vector
  copy(arr, arr+3, vec.begin());

  cout<<"arr contains:";
  for(int i = 0; i < 3; ++i)
    cout<<" "<<arr[i];

  cout<<"\nvec contains:";
  for(it = vec.begin(); it != vec.end(); ++it)
    cout<<" "<<*it;

  return 0;
}

The output of the above code will be:

arr contains: 10 20 30
vec contains: 10 20 30 1 1

❮ C++ <algorithm> Library