ForEach中的最后一个元素 C++是否有一个预先构建的方法来识别你在FACH循环中的元素,或者是否有一种方法来标识你是否在最后一个元素上?或者我必须用计数器手动操作吗?

ForEach中的最后一个元素 C++是否有一个预先构建的方法来识别你在FACH循环中的元素,或者是否有一种方法来标识你是否在最后一个元素上?或者我必须用计数器手动操作吗?,c++,foreach,C++,Foreach,不,没有这种内置方式。一般来说,迭代器也不可能存在,因为迭代器不需要知道它们最后“几乎”了。如果您发现自己需要索引,那么最好使用常规for循环。如果您需要最后一个元素,在转到容器中的下一项之前,使用另一个迭代器来存储它如何?如果在获取下一个元素(递增或递减迭代器)之前将这两个值都设置为循环的开始,然后在循环的结束处,则将last iterator设置为current,然后获取下一个元素 大概是这样的: container current::iterator; container last::it

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

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

如果您需要最后一个元素,在转到容器中的下一项之前,使用另一个迭代器来存储它如何?如果在获取下一个元素(递增或递减迭代器)之前将这两个值都设置为循环的开始,然后在循环的结束处,则将last iterator设置为current,然后获取下一个元素

大概是这样的:

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
}

这样,您就不必重写循环,但在此之前,您需要检查容器是否为空。

该死。我只是懒得重写我的循环!谢谢:)如果您需要知道每个元素(或任何元素)的索引,您应该使用for循环来代替。为什么您需要知道呢?只需将代码缩进四个空格(有一个按钮用于查找
{}
),对于大多数迭代器,这非常简单:
如果(it+1==end)