注册 登录
编程论坛 C++教室

[求助]c++问题!(c++ primer 4 的课后题)

wdtk 发布于 2007-10-13 13:45, 705 次点击

//用list 中的元素 初始化 vector !!
#include<iostream>
#include<list>
#include<vector>
#include<string>
using namespace std;

int main()
{
char *arr[11]={"mary","lida","limeng","wangdogn","fengling"};
list<char*>clist(arr,arr+5);
vector<string>svec;
string str;
svec.assign(clist.begin(), clist.end()); //无法通过编译( vc++ 6.0)
for(list<char*>::iterator iter=clist.begin();iter!=clist.end();++iter)
cout<<*iter<<endl;
cout<<" "<<endl;
for(vector<string>::iterator iter1=svec.begin();iter1!=svec.end();++iter1)
cout<<*iter1<<endl;
return 0;
}

6 回复
#2
栖柏2007-10-13 15:04
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
#3
栖柏2007-10-13 15:30

建议换个编译器
用dev-cpp可以通过

#4
栖柏2007-10-13 15:33

#include<iostream>
#include<list>
#include<vector>
#include<string>
using namespace std;

int main()
{
char *arr[11]={"mary","lida","limeng","wangdogn","fengling"};
list<char*> clist(arr,arr+5);
vector<string> svec;
string str;
svec.assign(clist.begin(),clist.end()); //无法通过编译( vc++ 6.0)
for(list<char*>::iterator iter=clist.begin();iter!=clist.end();++iter)
cout<<*iter<<endl;
cout<<" "<<endl;
for(vector<string>::iterator iter1=svec.begin();iter1!=svec.end();++iter1)
cout<<*iter1<<endl;
cin.get();
return 0;
}
可以在dec-c++运行通过

#5
wdtk2007-10-13 18:38

哦,但我搞不清楚原因所在啊~~~!

#6
wdtk2007-10-13 18:38
回复:(栖柏)#include#include
但我搞不清楚原因所在啊~~!
#7
栖柏2007-10-14 11:10

在VC中的头文件里没有定义,需要你自己写
还是用dev -C++吧,对标准支持好些

1