这段代码加上就出错,找不出来,求助啊
#include<iostream>
#include<algorithm>
#include<set>
#include<iterator>
#include<string>
using namespace std;
template<class T>
int reduce(T ar[],int n);
int main()
{
long ar[10]={1,5,2,2,6,1,7,9,3,5};
string str_ar[6]={"buffon","thinker","for","heavy","can","for"};
cout<<"Original array(long): ";
for(int i=0;i<10;i++)
cout<<ar[i]<<" ";
cout<<endl;
int num=reduce(ar,10);
cout<<"The number of final array is: "<<num;
/*cout<<"Original array(string): ";
for(int i=0;i<6;i++)
cout<<str_ar[i];
cout<<endl;
num=reduce(str_ar,6);
cout<<"The number of final array is: "<<num;*/
return 0;
}
template<class T>
int reduce(T ar[],int n)
{
set<T> temp(ar,ar+n);
ostream_iterator<int,char> out(cout," ");
copy(temp.begin(),temp.end(),out);
cout<<endl;
return temp.size();
}