#c #stl #iterator
#c #stl #итератор
Вопрос:
какая концепция в c учит вас расширять и писать свой собственный класс итератора? Я немного разбираюсь в написании шаблонов.
Комментарии:
1. Что вы подразумеваете под «концепцией»? Вы пишете итераторы, когда вам нужно выполнить итерацию по контейнеру, в котором еще нет подходящих итераторов, будь то потому, что контейнер нестандартен и его необходимо доработать, или потому, что у вас есть какие-то странные требования к итерации, такие как прозрачная фильтрация или повторяющиеся контейнеры контейнеров.
2. У вас также могут быть итераторы для неконтейнеров, например, итератор ostream. В общем случае вы можете определить итераторы для любой логической коллекции, даже если эта коллекция не существует как объект C .
Ответ №1:
Документация по стандартной библиотеке шаблонов SGI (STL) объясняет все концепции итератора и их взаимосвязи.
То, как вы берете эти концепции и используете их для реализации итератора для вашего собственного контейнера, полностью зависит от того, что это за контейнер и что вы хотите с ним делать.
Ответ №2:
«Мышление на C » Брюса Экеля имеет хорошее объяснение.