|
<algorithm>
template <class InputIterator, class OutputIterator>
OutputIterator copy ( InputIterator first, InputIterator last, OutputIterator result );
Copy range of elements
Copies the elements in the range [first,last) into a range beginning at result.
Returns an iterator to the last element in the destination range.
The behavior of this function template is equivalent to:
1 2 3 4 5 6
|
template<class InputIterator, class OutputIterator>
OutputIterator copy ( InputIterator first, InputIterator last, OutputIterator result )
{
while (first!=last) *result++ = *first++;
return result;
}
|
If both ranges overlap in such a way that result points to an element in the range [first,last), the function copy_backward should be used instead.
Parameters
- first, last
- Input iterators to the initial and final positions in a sequence to be copied. The range used is [first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last.
- result
- Output iterator to the initial position in the destination sequence. This shall not point to any element in the range [first,last).
Return value
An iterator to the last element of the destination sequence where elements have been copied.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
// copy algorithm example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main () {
int myints[]={10,20,30,40,50,60,70};
vector<int> myvector;
vector<int>::iterator it;
myvector.resize(7); // allocate space for 7 elements
copy ( myints, myints+7, myvector.begin() );
cout << "myvector contains:";
for (it=myvector.begin(); it!=myvector.end(); ++it)
cout << " " << *it;
cout << endl;
return 0;
}
|
Output:
myvector contains: 10 20 30 40 50 60 70 |
Complexity
Linear: Performs as many assignment operations as the distance between first and last.
See also
copy_backward | Copy range of elements backwards (function template) |
fill | Fill range with value (function template) |
replace | Replace value in range (function template) |
|