首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这段代码加下就出错,找不出来,

2013-01-06 
这段代码加上就出错,找不出来,求助啊#includeiostream#includealgorithm#includeset#includeiterat

这段代码加上就出错,找不出来,求助啊

#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();
}


这段带注释的代码,加上去就出错,错误信息:Error1error C2679: binary '=' : no operator found which takes a right-hand operand of type 'const std::basic_string<_Elem,_Traits,_Ax>' (or there is no acceptable conversion)d:\program files\microsoft visual studio 10.0\vc\include\xutility2144

楼主新手,同时也想问问,这类错误,没有明显提示错误在哪,如何调试呢?只能根据经验判断吗?谢谢了!
[解决办法]
ostream_iterator<int,char> out(cout," ");
ostream_iterator<T,char> out(cout," ");

...basic_string...(or there is no acceptable conversion)
其实还是有点提示的。

说到底就是要理解,理解了自然明了。

热点排行