Есть два подхода к итераторам: "Java" и "STL"
В Java позиция итератора это позиция *между* элементами последовательности.
в stl позиция итератора это позция элемента
Вот в статье (
здесь) про последнюю QT (v.4.0) утверждается что:
The Java-style iterators are new in Qt 4.0 and are the standard ones used in Qt applications. They are more convenient to use than the STL-style iterators, at the price of being slightly less efficient. Their API is modelled on Java's iterator classes.
В принципе дейтвительно Java вариант выглядит логичнее в том смысле что:
1) не нужно специального end value (которое кстати не всегда и можно-то натурально определить)
2) операции prev / next симметричны.
А вы как думаете?