怎样写从iterator的第二个元素开始遍历?

texted2008 2010-04-20 07:12:23
for(list<char>::iterator itor = midcharList.begin(); itor != midcharList.end(); ++ itor)

只会这样写,但是现在需要从第二个元素开始,怎么办?


我想到的是 用advance,如果itor是第一个元素 则向后推一个,但是code不知道怎写。
...全文
917 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cppresearcher 2010-04-20
  • 打赏
  • 举报
回复

for(list<char>::iterator itor = midcharList.begin(); ++itor != midcharList.end(); )
{
//do something.
}
LENOVO_ 2010-04-20
  • 打赏
  • 举报
回复
呵呵,向“mstlq”学习,努力学习STL的用法。
mstlq 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pengzhixi 的回复:]
list<char>::iterator itor=++midcharList.begin();
[/Quote]
临时对象不能++的……
pengzhixi 2010-04-20
  • 打赏
  • 举报
回复
list<char>::iterator itor=++midcharList.begin();
走好每一步 2010-04-20
  • 打赏
  • 举报
回复
#include <iostream>
#include <list>
using namespace std;



int main()
{
list<char> l;
for (char c='a'; c<='z'; ++c)
{
l.push_back(c);
}
list<char>::iterator iter = l.begin();
++iter;

for(NULL; iter!=l.end(); ++iter)
{
cout << *iter << endl;
}
return 0;
}

iterator实际上是个类,通过操作符重载,它的对象iter(迭代器)支持++,--等操作。
bitxinhai 2010-04-20
  • 打赏
  • 举报
回复
list<char>::iterator itor = midcharList.begin()
itor++;
for(; itor != midcharList.end(); ++ itor)
{
.....
}
mstlq 2010-04-20
  • 打赏
  • 举报
回复

for(list<char>::iterator itor = midcharList.begin(); itor != midcharList.end(); ++ itor)
{
if (itor==midcharList.begin()) continue;
/*do something*/
}

64,649

社区成员

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

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