Если вам нужен последний элемент, как насчет использования другого итератора для его сохранения до перехода к следующему элементу в контейнере?Если вы установите оба в начало и затем в конце цикла, прежде чем получите следующий элемент (увеличьте или уменьшите итератор), установите последний итератор на текущий, а затем получите следующий.
Примерно так:
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
}
Таким образом, вам не нужно переписывать ваш цикл, но вам нужно проверить, чтобы убедиться, что ваш контейнер не пустой до этого.*