Типы итераторов: выход против ввода против прямого итератора с произвольным доступом

Самая большая проблема со станд.:: строка - то, что текущий стандарт не гарантирует, что его базовая система хранения непрерывна. Однако нет никаких известных реализаций STL, где строка не непрерывна, так на практике она, вероятно, не перестанет работать. На самом деле новый C++ 0x стандарт собирается решить эту проблему путем передавания под мандат того станд.:: представьте в виде строки использует непрерывный буфер, такой как станд.:: вектор.

Другой аргумент против строки - то, что его имя предполагает, что она содержит символьную строку, не двоичный буфер, который может вызвать беспорядок тем, кто считал код.

Однако я рекомендую вектор также.

38
задан Nawaz 6 March 2011 в 16:58
поделиться

2 ответа

Стандарт C ++ также имеет концепцию двунаправленного итератора, который является прямым итератором, который также может идти в обратном направлении (с помощью operator--). Вместе эти пять образуют всю иерархию итераторов в параграфе 24.2 стандарта C ++.

Старый STL также имел концепцию Тривиальный Итератор . См. Его Обзор итераторов для получения подробной информации о различных итераторах.

Разработчики повышения Abrahams, Siek и Witt представили гораздо более детальный набор концепций итераторов.

15
ответ дан 27 November 2019 в 03:43
поделиться

Я подозреваю, что вы знаете ответ довольно хорошо, но в любом случае, эти диаграммы очень полезны для выяснения этого

6
ответ дан 27 November 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: