copy(beg,end,destBeg)和copy_backward(beg,end,destEnd)的特点
1:迭代器类型:输入迭代器
2:返回值类型:copy返回的是输出迭代器,copy_backward返回的是双向迭代器
3:算法功能:这两个算法都将区间[beg,end)的所有元素复制到以destBeg或者destEnd为终点的目标区间去
4:复杂度:线性复杂度
5:注意destBeg和destEnd不可处于[beg,end)中
#include<iostream>
#include<vector>
#include<functional>
using namespace std;
int main()
{
//将c1的元素分别复制到输出流迭代器和c2容器中
vector<int>c1 = { 1,2,3,4,5};
vector<int>c2;
c2.resize(5);//为c2预先分配空间
copy(c1.begin(),c1.end(),ostream_iterator<int>(cout," "));
cout << endl;
copy(c1.begin(),c1.end(),c2.begin());
//假如c2没有预先分配足够空间,应使用插入迭代器
//copy(c1.begin(),c1.end(),back_inserter(c2));
copy(c2.begin(), c2.end(), ostream_iterator<int>(cout, " "));
}
#include<iostream>
#include<vector>
#include<functional>
using namespace std;
int main()
{
//将c1的元素复制到以c2.end()为终点的目标区间
vector<int>c1 = { 1,2,3,4,5 };
vector<int>c2;
c2.resize(5);//为c2预先分配空间
copy(c1.begin(), c1.end(), ostream_iterator<int>(cout, " "));
cout << endl;
copy_backward(c1.begin(), c1.end(), c2.end());
copy(c2.begin(), c2.end(), ostream_iterator<int>(cout, " "));
}