Настройка класса итератора STL

#c #stl #iterator

#c #stl #итератор

Вопрос:

какая концепция в c учит вас расширять и писать свой собственный класс итератора? Я немного разбираюсь в написании шаблонов.

Комментарии:

1. Что вы подразумеваете под «концепцией»? Вы пишете итераторы, когда вам нужно выполнить итерацию по контейнеру, в котором еще нет подходящих итераторов, будь то потому, что контейнер нестандартен и его необходимо доработать, или потому, что у вас есть какие-то странные требования к итерации, такие как прозрачная фильтрация или повторяющиеся контейнеры контейнеров.

2. У вас также могут быть итераторы для неконтейнеров, например, итератор ostream. В общем случае вы можете определить итераторы для любой логической коллекции, даже если эта коллекция не существует как объект C .

Ответ №1:

Документация по стандартной библиотеке шаблонов SGI (STL) объясняет все концепции итератора и их взаимосвязи.

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

Ответ №2:

«Мышление на C » Брюса Экеля имеет хорошее объяснение.