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

求教容器的问题

sunhang777 发布于 2010-12-22 10:55, 539 次点击
题目:将一个list容器的所有元素赋值给一个vector容器,其中list容器存储char*,vector存储string。

不知道是什么错误请大家帮帮忙,谢谢。

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

int main()
{
    char* sa[]={"sunhang","zhangchunhua","tanbin","huangwei"};
    list<char*> slst(sa,sa+4);
    vector<string> svec;

    svec.assign(slst.begin(),slst.end());
  
    for (list<char*>::iterator lit=slst.begin();lit!=slst.end();lit++)
    {
        cout<<*lit<<" ";
    }
    cout<<endl;


    for (vector<string>::iterator vit=svec.begin();vit!=svec.end();vit++)
    {
        cout<<*vit<<" ";

    }
    cout<<endl;


    return 0;

}


Compiling...
9.cpp
D:\C++程序\9.cpp(283) : 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_traits<char>,class std::allo
cator<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 *> >::const_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.obj - 1 error(s), 0 warning(s)


不知道是什么错误请大家帮帮忙,谢谢。
5 回复
#2
无尽苍穹2010-12-22 10:59
好像没错啊!
你用的什么编辑器啊
#3
sunhang7772010-12-22 11:01
我用的vc++6.0  我也感觉没错...
#4
guming0012010-12-22 12:22
用VS编译下来没有任何问题,你试着新建一个项目,拷贝一下试试
#5
sunhang7772010-12-22 15:37
好的,谢谢。  可是我想知道为什么VC不行,有没有人指点一下.谢谢
#6
df198610172010-12-23 22:17
应该是编译器的原因,VS2010下没问题!
1