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