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

assign()函数的异常 ()

2012-11-03 
assign()函数的错误 (在线求救)#includeiostream#includelist#includevector#includestringusing

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对模板的支持不好
[解决办法]

探讨
如果是模板的问题 换编译器吧 vc6对模板的支持不好

热点排行