ForEach中的最后一个元素

时间:2012-03-15 22:59:58

标签: c++ foreach

C ++是否有预先构建的方法来识别你在foreach循环中使用的元素,或者是否有办法确定你是否在最后一个元素上?或者我必须用计数器手动完成吗?

3 个答案:

答案 0 :(得分:7)

不,没有这种内置方式。一般情况下也不可能有迭代器,因为迭代器不需要知道它们“几乎”在最后。

答案 1 :(得分:4)

如果您发现自己需要索引,最好使用常规for循环

答案 2 :(得分:3)

如果你需要最后一个元素,在转到容器中的下一个项目之前,如何使用另一个迭代器来存储它?如果在获得下一个元素(递增或递减迭代器)之前将两者都设置为循环的开始和结束,则将最后的迭代器设置为当前,然后获取下一个。

这样的事情:

container current::iterator;
container last::iterator;
current = container.first();
last = current;  // or contianer.first();
while ( current is valid ) 
{
  // do something 
  last = current;
  // get the next item 
  current = container.next(); // or current++; 
                              // depending upon container or 
                              // iterator
}

这样你就不必重写你的循环,但你需要检查以确保你的容器在此之前不是空的。