gnome,驻云,李福成之子李高起图片
std::copy 函数在 <algorithm> 中声明,属于变易算法(Modifying sequence operations),主要用于实现序列数据的复制。
template <class InputIterator, class OutputIterator> OutputIterator copy ( InputIterator first, InputIterator last, OutputIterator result );
InputIterator 输入迭代器
OutputIterator 输出迭代器
返回目标序列的结束位置。
template<class InputIterator, class OutputIterator> OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result) { while (first!=last) { *result = *first; ++result; ++first; } return 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
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论