![在这里插入图片描述](https://img-blog.csdnimg.cn/20191225171541471.png)
将源区间[_First,_Last)中的所有元素复制到以_Dest为起点的目标区间,返回目标区间内最后一个被复制元素的下一个位置,也就是第一个未被覆盖的元素的位置.其中_Dest不可以处于[_First,_Last)区间
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191225171611596.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODAwNzgw,size_16,color_FFFFFF,t_70)
将源区间[_First,_Last)中的所有元素复制到以_Dest为起点的目标区间,返回目标区间内最后一个被复制元素的下一个位置,也就是第一个未被覆盖的元素的位置,源区间和目标区间不可重叠
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191225171656657.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODAwNzgw,size_16,color_FFFFFF,t_70)
将源区间[_First,_Last)中的所有元素复制到以_Dest为起点的目标区间,返回目标区间内最后一个被复制元素的下一个位置,也就是第一个未被覆盖的元素的位置
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191225171719828.png)
将源区间[_First,_Last)中的所有元素复制到以_Dest为起点的目标区间,返回目标区间内最后一个被复制元素的下一个位置,也就是第一个未被覆盖的元素的位置._Dest不可处于(_First,_Last]区间内
若要把一个子区间复制到前端,应该使用copy().若要把一个子区间复制到后端,应该使用copy_backward()
调用者必须保证目标区间有足够空间,要不就得使用insert iterator
如果源端元素不在被使用,应该以move()取代copy(),以move_backward()取代copy_backward()
如果希望在复制元素的过程中反转元素次序,应该使用reverse_copy()相比于copy()算法使用反向迭代器会更快
如果希望把容器内的所有元素赋值给另一容器,应该使用赋值操作符或使用容器的assign()成员函数
如果希望在复制的同时移除元素,应使用remove_copy()和remove_copy_if()
如果希望在复制过程中改动元素,应使用transform()或replace_copy()
复杂度:线性,执行numElems次赋值
copy()使用例子:
int main()
{
vector<string>a{
"Hello","this","is","an",