Где взять пример кода на C ++, создавая итератор для моего собственного контейнера? - PullRequest
7 голосов
/ 13 ноября 2009

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

Я ищу простой пример кода, чтобы начать разработку собственного итератора.

Спасибо

Ответы [ 4 ]

6 голосов
/ 13 ноября 2009

Здесь вы можете найти хорошее введение для создания пользовательских итераторов. Также взгляните на библиотеку Boost.Iterator .

2 голосов
/ 13 ноября 2009

Я нашел "расширенный STL" Мэтью Уилсона очень образовательным по предмету Содержит много того, что можно и чего нельзя делать, а также множество практических советов по программированию. Я думаю, что этот парень действительно знает, что он делает. (для этого тоже созданы библиотеки)

0 голосов
/ 12 марта 2012

Ознакомьтесь с этой статьей, в которой описано, как реализовать собственный виртуальный итератор для ваших классов: article

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

0 голосов
/ 14 ноября 2009

У Николая Йосуттиса есть пример пользовательского итератора в его книге: Стандартная библиотека C ++, руководство и справочник.

Вот пример онлайн:

http://www.josuttis.com/libbook/iter/assoiter.hpp http://www.josuttis.com/libbook/iter/assoiter.cpp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...