| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:list容器输出有错误
只看楼主 加入收藏
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
结帖率:96.23%
收藏
已结贴  问题点数:20 回复次数:4 
list容器输出有错误
#include<iostream>
#include<string>
#include<list>
#include<vector>
using namespace std;
int main()
{
  string sa[3]={"abc","bbc","abd"};
  int i=0;
  while(i<3)
  {
    cout<<sa[i]<<endl;
    i++;
  }
  i=0;
  list<string>::iterator p;
  list<string> slist(sa,sa+3);
 p=slist.begin();
  for(;p!=slist.end();++p)//为什么list容器只能这么输出?
  {
    cout<<*p<<endl;

  }
   i=0;
  list<string> slist2(sa,sa+3);
  list<string>::iterator q;
  q=slist2.begin();
  while(i<3)
  {
    cout<<*(q+i)<<endl;//这样输出list容器内的内容为什么不行?
    i++;
  }
  i=0;
  vector<string> slist3(sa,sa+3);
  vector<string>::iterator m;
  m=slist3.begin();
  while(i<3)
  {
   cout<<*(m+i)<<endl;
   i++;
  }

  return 0;
}
搜索更多相关主题的帖子: include 
2014-04-08 05:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
list的迭代器不是随机迭代器,不重载operator+就是防止你们滥用。
如果一定需要类似的功能,可以用 std::advance
2014-04-08 08:13
lonely_21
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:108
专家分:395
注 册:2011-11-13
收藏
得分:10 
cout<<*(q+i)<<endl;//这样输出list容器内的内容为什么不行?
迭代器本身就是个对象,而这个对象没有重载operator+,所以你这样用不了咯
2014-04-08 10:45
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 2楼 rjsp
thanks a lot

想抽苏烟了。
2014-04-08 23:44
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 3楼 lonely_21
thanks

想抽苏烟了。
2014-04-08 23:44
快速回复:list容器输出有错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023994 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved