VC6.0下 容器的 assign(b, c); 编译为什么报错?请指点!!

dixueliren 2008-09-27 02:55:59
VC6.0下 容器的 assign(b, c); 编译为什么报错!代码如下:
#include <iostream>
#include <list>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main(int argc, char **argv)
{
char *str[] = {"aaaa","ssss","dddd","ffff","gggg"};
vector<string>svec;
list<char*>slist(str, str + 5);

svec.assign(slist.begin(), slist.end()); //编译此行报错。为什么?

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

return 0;
}

c.assign(b,e)
重新设置 c 的元素:将迭代器 b 和 e 标记的范围内所有的元素复制到 c 中。b 和 e 必须不是指向 c 中元素的迭代器
请高手指点!!谢谢!!
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dixueliren 2008-09-27
  • 打赏
  • 举报
回复
谢谢 各位!!
在linux 下 g++ 可以编译通过。看来是VC6 的问题!
minorcxx 2008-09-27
  • 打赏
  • 举报
回复
svec.assign(vec.begin(), vec.end());
就ok了
是list不能转为vector的问题
太乙 2008-09-27
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080228/21/83561c7a-922d-47c6-86d7-5e7dee07913f.html
taodm 2008-09-27
  • 打赏
  • 举报
回复
VC6就扔了吧,别用它浪费生命了。
换VC2005或者wxdevcpp

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧