В языке С++ (да и в любом другом) контейнер — это набор однотипных элементов. Я не случайно употребил слово «набор», а не «множество», так как множество — это тоже контейнер. По этому определению массив — это контейнер. Каталог файлов на диске — тоже контейнер.
Каждый контейнер характеризуется, в первую очередь, своим именем и типом входящих в него элементов. Имя контейнера — это имя переменной в программе, которое подчиняется правилам видимости С++. Как объект, контейнер должен обладать временем жизни в зависимости от места и времени создания, причем время жизни контейнера в общем случае не зависит от времени жизни его элементов.
Тип контейнера складывается из типа самого контейнера и типа входящих в него элементов. Тип контейнера — это не тип его элементов. Как правило, тип контейнера определяет способ доступа к элементам. Тип элементов может быть либо встроенным, либо реализованным. В том числе элементами контейнера могут быть контейнеры. Например, элементами некоторого каталога могут быть каталоги. Список строк тоже может служить примером контейнера контейнеров, так как отдельную строку можно считать контейнером символов.
И наконец, надо сказать о размере контейнера. Размер контейнера может быть либо определен при объявлении, либо не задан. В первом случае получаем контейнер фиксированной длины. Именно таким контейнером является «умный» массив (см. листинг 5.2), который не изменяет количество своих элементов за время жизни. Однако в общем случае количество элементов контейнера с заданной фиксированной длиной может изменяться от нуля до объявленного количества. Пример нашего класса строк TStri ng (см. листинг 4.2) показывает, что размер контейнера (255 элементов) и количество элементов в нем (определяемое методом LengthO) — это разные вещи.
Если же размер контейнера не задается, то, естественно, количество элементов контейнера изменяется во время работы программы. Элементы добавляются в контейнер и удаляются из него. Такой контейнер является контейнером переменного размера.
Опубликовал Kest
November 03 2013 16:37:26 ·
0 Комментариев ·
4329 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.