|
Материалы книги получены с http://www.itlibitum.ru/
Коллекции, курсоры и итераторы
Проблема проектирования и реализации классов-коллекций (совокупностей объектов, находящихся под управлением другого объекта) стара, как само объектно-ориентированное программирование. Нет смысла повторять здесь все, что можно прочитать в других книгах о всевозможных коллекциях - изменяемых, сериализуемых, индексируемых и т. д. Если вам нужна информация о структурах данных и сопутствующих трансформациях, начните с изучения классов-коллекций SmallTalk и затем переходите к коммерческим библиотекам классов C++, рекламой которых забиты все журналы по программному обеспечению. Я же собираюсь сосредоточить ваше внимание на тех С++-измах, благодаря которым коллекции укладываются в мистическое учение программирования на C++ независимо от используемых структур данных и иерархий классов.
В начале этой главы рассматриваются индексируемые коллекции - то есть те, в которых некоторый объект используется в качестве индекса для получения другого объекта, скрытого глубоко в недрах коллекции. Мы воспользуемся оператором [], чтобы коллекция выглядела как абстрактный массив. Дело даже не в том, что программа от этого обычно становится более понятной - в этом подходе задействованы многие идиомы, используемые для коллекций. После знакомства с курсорами и их собратьями итераторами мы перейдем к изощренным коллекциям, модифицируемым в процессе перебора.
Назад Содержание Далее
|