C++STL算法中的copy函数主要用于容器之间元素的拷贝,即将迭代器区间[first,last)的元素复制到由复制目 标result给定的区间[result,result+(last-first))中。
下面将通过copy函数及迭代器实现向量的输入和输出:
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
int main(int argc, char** argv)
{
vector<int> data{};
cout << "please input:\n";
// 读入数据
copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(data));
cout << "before sort:\n";
// 输出
copy(data.begin(),data.end(),ostream_iterator<int>(cout,","));
cout << endl;
// 排序
sort(data.begin(),data.end());
cout << "after sort:\n";
// 输出
copy(data.begin(),data.end(),ostream_iterator<int>(cout,","));
cout << endl;
return 0;
}
代码非常简洁优雅。