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 * 复制到 ostreamcopy(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只负责复制,不负责申请空间,所以复制前必须有足够的空间