template <class InputIterator, class OutputIterator>
OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result);
[first,last)
into the range beginning at result.复制范围[first,last)里面的元素到result的位置。(将会覆盖原来的数据)
例子:
#include <iostream> #include <algorithm> #include <vector> #include <array> using namespace std; void copy1(){ vector<int> v1{1,5,7,8,9}; vector<int> v2{100,200,300}; array<int,7> ai{888,666.555,222,111,555,777}; vector<double> vd{9.9,8.8,7.7,}; cout<<"at first,v1="; for(int &i:v1) cout<<i<<" "; cout<<endl; cout<<"at first,v2="; for(int &i:v2) cout<<i<<" "; cout<<endl; auto it=copy(v2.begin(),v2.end(),v1.begin()); cout<<"after copy(v2.begin(),v2.end(),v1.begin())"<<endl; cout<<"v1="; for(int &i:v1) cout<<i<<" "; cout<<endl; cout<<"v2="; for(int &i:v2) cout<<i<<" "; cout<<endl; cout<<"the return it is :*it="<<*it<<endl; }
运行截图:
The function returns an iterator to the end of the destination range (which points to the element following the last element copied).
该函数返回一个迭代器,指向目标范围的最后(即last的下一个元素)(上面例子的8)
The ranges shall not overlap in such a way that result points to an element in the range [first,last). For such cases, see copy_backward.
result不应该指向[first,last)中的任一元素,如果需要,应该使用copy_backward.(这句话很有问题,因为copy_backward也有一句几乎一样的话,具体需求请具体分析)
例子:
#include <iostream> #include <algorithm> #include <vector> #include <array> using namespace std; void copy2(){ vector<int> v1{1,5,7,8,9}; cout<<"at first,v1="; for(int &i:v1) cout<<i<<" "; cout<<endl; auto it=copy(v1.begin(),v1.end(),v1.begin()+3); cout<<"after copy(v1.begin(),v1.end(),v1.begin()+3)"<<endl; cout<<"v1="; for(int &i:v1) cout<<i<<" "; cout<<endl; cout<<"the return it is :*it="<<*it<<endl; }运行截图:
|
|
[first,last)
, which contains all the elements between first and last, including the element pointed by first but not the element pointed by last.[first,last)
.返回一个指向目标范围最后一个元素的迭代器。
|
|
Edit & Run
|
myvector contains: 10 20 30 40 50 60 70 |
[first,last)
are accessed (each object is accessed exactly once).result以及返回值之间的所有元素都将会被修改。
Note that invalid arguments cause undefined behavior.
——————————————————————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:[email protected]
2014-9-8
于GDUT
——————————————————————————————————————————————————————————————————