STL:copy
STL算法:copy
std::copy()函数使用
std::copy 函数在 中声明,属于变易算法(Modifying sequence operations),主要用于实现序列数据的复制
template <class InputIterator, class OutputIterator>
OutputIterator copy (
InputIterator first,
InputIterator last,
OutputIterator result
);
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
int main()
{
int arr[] = {1, 3, 5, 2, 4, 6};
// 从 int * 复制到 ostream
copy(arr, arr+6, ostream_iterator<int>(cout, " "));
cout << endl;
vector<int> v(7, 0); //提前为vector分配空间
// 从 int * 复制到 vector<int>
vector<int>::iterator last = copy(arr, arr+6, v.begin());
copy(v.begin(), last, ostream_iterator<int>(cout, " "));
cout << endl;
set<int> s{7, 8, 9};
// 从 set<int> 复制到 vector<int>
copy(s.begin(), s.end(), v.begin());
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
cout << endl;
return 0;
}
输出:
1 3 5 2 4 6
1 3 5 2 4 6
7 8 9 2 4 6 0
⚠️ 拷贝前必须为容器申请足够的空间
,copy只负责复制,不负责申请空间,所以复制前必须有足够的空间