Тема: ContainerIterator
Показать сообщение отдельно
Старый 18.06.2008, 19:06   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Hyper Посмотреть сообщение
В коде логическая ошибка. Перед iterator.next() необходим else.
На самом деле результат одинаков и так, и так (по крайней мере в 3.0 SP4). Думаю, что класс ListIterator всё сам корректно обрабатывает и не делает казалось бы лишний next для уже удаленного элемента.

Что касается визуального восприятия кода, то добавление else, на мой взгляд, затуманит наглядность, так как глаз привык к шаблону вида:
X++:
while (iterator.more())
{
    // bla-bla-bla

    iterator.next();
}
А пряча продвижение указателя за else, можно потерять уверенность, что будут обойдены все элементы коллекции.
Но в любом случае все претензии по данному фрагменту - авторам "Inside"