2016-01-11 3 views
1

Я в настоящее время реализую итератор для внутренней структуры данных и посмотрел, как QVector реализует свой итератор. Я не понимаю, почему QTypedArrayData :: итератор реализует свои ++ и - операторы, как:Почему итератор QVector использует префиксное увеличение, но постфикс уменьшает внутренне?

T *i; 
inline iterator &operator++() { ++i; return *this; } 
inline iterator &operator--() { i--; return *this; } 

То, что я не понимаю, это расхождение между этими двумя: Почему это использовать оператор декремента постфикс?

Благодарим за любые разъяснения!

+1

Я тоже этого не понимаю, поэтому я думаю - нет причин. Или просто опечатка. –

ответ

2

Ваше непонимание подразумевает, что существует какая-либо практическая разница между этими двумя, и что кодирование было целенаправленно сделано таким образом. Такое ожидание разумно, но неверно. Вы можете писать эти операции в любом случае, и они будут работать одинаково. Это может вопрос о не-POD типах, которые дорого копировать/перемещать, но здесь это не так. И это использовано для вопрос 15-20 лет назад на бедных компиляторах той эпохи. К счастью, нам больше не нужно иметь дело с VS6 :)

+0

Только то, что я думал. Спасибо за разъяснения. – Niklas