Как реализовать итератор в стиле STL и избежать распространенных ошибок?

Я создал коллекцию, для которой хочу предоставить итератор с произвольным доступом в стиле STL. Я искал пример реализации итератора, но не нашел. Я знаю о необходимости константных перегрузок операторов [] и * . Каковы требования к итератору, чтобы он был "в стиле STL" и каких других подводных камней следует избегать (если они есть)?

Дополнительный контекст: это для библиотеки, и я не хочу вводить какую-либо зависимость от нее если мне действительно не нужно. Я пишу свою собственную коллекцию, чтобы обеспечить двоичную совместимость между C ++ 03 и C ++ 11 с одним и тем же компилятором (поэтому нет STL, который, вероятно, сломался бы).

285
задан Tamás Szelei 8 November 2011 в 06:32
поделиться