assign()函数的错误 (在线求救)
#include<iostream>
#include<list>
#include<vector>
#include<string>
using namespace std;
int main()
{
char* ch[]={"2136","456","589","4578"};
list<char*> clist(ch,ch+4);
vector<string> svec;
string str;
svec.assign(clist.begin(),clist.end());//assign()函数在此出现错误,怎么回事呢?
cout<<"Display list content: "<<endl;
for(list<char*>::iterator iter=clist.begin();iter!=clist.end();++iter)
cout<<*iter<<" ";
cout<<endl;
cout<<"Display the vector content: ";
for(vector<string>::iterator iter1=svec.begin();iter1!=svec.end();++iter1)
cout<<*iter1<<" ";
cout<<endl;
return 0;
}
//错误提示:
error C2664: 'void __thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_t
raits<char>,class std::allocator<char> > > >::assign(const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)' :
cannot convert parameter 1 from 'class std::list<char *,class std::allocator<char *> >::iterator' to 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.
[解决办法]
哥们,我帮你编译运行了以下,结果没有错误啊
[解决办法]
楼上的是什么编译器?
我用VC6也出LZ的情况,但看vector::assign 原型定义好象是没什么问题——!
void assign(size_type count, value_type val);
template<typename InIt>
void assign(InIt first, InIt last);
void assign(System::Collections::Generic::IEnumerable<Value>^ right);
莫非又和编译器有关?
[解决办法]
如果是模板的问题 换编译器吧 vc6对模板的支持不好
[解决办法]