Глава 18
Классы-контейнеры
(Поскольку для реализации классов-контейнеров совершенно необходимо иметь представление о шаблонах, мы настоятельно рекомендуем перед изучением материала данной главы просмотреть главу 19 "Классы-шаблоны", — прим. перев.).
Классы-контейнеры (container classes) или просто контейнеры служат для хранения и манипулирования данными любого типа, включая и определенные пользователем. К контейнерам относятся такие распространенные структуры данных, как, например, массивы, множества и стеки. В поставку Borland C++ 5 входят две библиотеки классов: разработка фирмы Borland — BIDS (Borland International Data Structures, Структуры данных фирмы Borland Int.) и STL (Standard Template Library, Библиотека стандартных шаблонов), являющаяся частью последнего стандарта языка C++.
Указанные библиотеки представляют два различных подхода. Библиотека BIDS моделирует контейнеры в традиционном объектно-ориентированном стиле с интенсивным использованием наследования и инкапсуляцией всей функциональности внутри класса-контейнера. В противоположность этому, библиотека STL выделяет функциональность контейнеров в глобальные функции-шаблоны.
BIDS
В библиотеке BIDS имеются такие популярные структуры данных, как массив (array), мультимножество (bag), двусторонняя очередь (deque), словарь (dictionary), очередь (queue), множество (set) и стек (stack). Каждый класс содержит функции-члены, которые согласуются по типу с контейнерами. Так, например, объект-массив обеспечивает произвольный доступ к своим данным с помощью операции [ ], в то время как стек предоставляет доступ к