#include <algorithm>
#include <iterator>
#include <vector>
#include <iostream>
using namespace std;
template <class tc,class ta,class tb>
void fun1(ta a, ta b, tb c) /*a,b*/
{
vector <tc> v1(a,b);
sort(v1.begin(), v1.end()); //算法参数尽量使用迭代器
copy(v1.begin(), v1.end(), c);
};
int main()
{
int sz[5] = { 5,2,3,4,1 };
fun1<int,int *,ostream_iterator<int>>(sz, sz + 5, ostream_iterator<int>(cout, " "));
cout << endl;
fun1<int,istream_iterator<int>,ostream_iterator<int>>(istream_iterator<int>(cin),istream_iterator<int>(),ostream_iterator<int>(cout," "));
cout << endl;
}
我觉得需要注意的地方有:
1:sort,copy这些STL算法模板函数的参数最好使用迭代器,就是那种自带的迭代器,不是自己定义的那种。我是说尽量。
2:调用模板的时候后面2个参数可以省略。
3:在输入数据的时候每个数字之间要使用空格隔开,否则会被识别为同一个数字,就不会排序了。
4:输入完全部数字后使用CTRL+Z 然后再使用enter键结束输入,这是所有标准输入流结束的结束方式
5:你现在要怎么感谢我