返回信息流程序将一个list的所有元素赋值给一个vector。list存储的是char*指针,vector元素为string类型。
程序如下:
#include <iostream>
#include<vector>
#include<list>
#include<string>
using namespace std;
int main()
{
char* sa[]={"mary","tom","gaby","bob"};
list<char*> slst(sa,sa+4);
vector<string> svec;
svec.assign(slst.begin(),slst.end());
cout<<"the list is:"<<endl;
for(list<char*>::iterator iter1=slst.begin();
iter1!=slst.end();iter1++)
{
cout<<*iter1<<' ';
}
cout<<endl<<"the vector is:"<<endl;
for(vector<string>::iterator iter2=svec.begin();
iter2!=svec.end();iter2++)
{
cout<<*iter2<<' ';
}
return 0;
}
编译通不过去。。
错误提示:
--------------------Configuration: 9.28 - Win32 Debug--------------------
Compiling...
9.28.cpp
C:\Documents and Settings\Administrator\9.28.cpp(12) : 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::ch
ar_traits<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
执行 cl.exe 时出错.
9.28.exe - 1 error(s), 0 warning(s)
大侠们看看咋回事??[ema27][ema27]
这是一条镜像帖。来源:北邮人论坛 / cpp / #45600同步于 2010/11/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
c++ primer 9.28 编译通不过去啊???大侠们帮帮忙来。。
dkxsj
2010/11/4镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
LZ你用的是VC6吧,对标准C++支持不是很好,所以会出错。而2010和codeblock支持98%的标准C++,所以可以编译通过。建议学primer不要用VC6,否则一些问题。
【 在 lzhghjw 的大作中提到: 】
: LZ你用的是VC6吧,对标准C++支持不是很好,所以会出错。而2010和codeblock支持98%的标准C++,所以可以编译通过。建议学primer不要用VC6,否则一些问题。
: --
原来是这样啊!!多谢!!![ema4][ema4]