ForEach中的最后一个元素
不,没有这种内置的方式。一般来说,也不可能存在迭代器,因为迭代器不需要知道它们最终“几乎”。
啊,我明白了。谢谢:) – Jon 2012-03-15 23:02:47
对于大多数迭代器来说很简单:'if(it + 1 == end)' – 2012-03-19 15:57:03
如果你需要的最后一个元素,如何使用另一个迭代器来存储它你去到下一个项目中的容器之前?如果在获取下一个元素(递增或递减迭代器)之前将两者都设置为开始和结束时循环,则将上一个迭代器设置为当前,然后获取下一个。
事情是这样的:
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
}
这样,你就不必改写你的循环,但是你需要检查,以确保您的容器是不是在此之前空。
只是缩进代码四个空格(有一个按钮,它寻找'{}') – 2012-03-15 23:24:22
谢谢。我的编辑有点生锈。 – Glenn 2012-03-15 23:51:28
如果您需要知道每个元素(或任何元素)的索引,则应该使用for循环。 – 2012-03-15 23:02:56
为什么你需要知道这一点? – svick 2012-03-15 23:24:05