Контейнерные классы

   
На этом шаге мы перечислим основные контейнерные классы.

   
Контейнеры представляют собой объекты STL, которые предназначены для хранения данных.
Контейнеры, определяемые в STL, представлены таблице 1. В ней также указаны заголовки, которые
необходимо включать в программу при использовании каждого контейнера.

Таблица 1. Контейнеры, определяемые в STL

КонтейнерОписаниеЗаголовок
bitsetБитовое множество<bitset>
dequeДек (двусторонняя очередь, очередь с двусторонним доступом)<deque>
listЛинейный список<list>
mapОтображение. Хранит пары "ключ-значение", в которых каждый ключ связан только с одним значением<map>
multimapМультиотображение. Хранит пары "ключ-значение", в которых каждый ключ может быть связан с двумя или более значениями<map>
multisetМножество, в котором каждый элемент необязательно уникален<set>
priority_queueПриоритетная очередь<queue>
queueОчередь<queue>
setМножество, в котором каждый элемент уникален<set>
stackСтек<stack>
vectorДинамический массив<vector>

   
Поскольку имена типов в объявлениях шаблонных классов произвольны, контейнерные классы объявляют typedef - версии этих типов,
что конкретизирует имена типов. Некоторые из наиболее популярных typedef-имен приведены в таблице 2.

Таблица 2. Популярные typedef-имена

typedef-имяОписание
size_typeНекоторый целый тип, приблизительно аналогичный типу size_t
referenceСсылка на элемент
const_referenceКонстантная ссылка на элемент
iteratorИтератор
const_iteratorКонстантный итератор
reverse_iteratorРеверсивный итератор
const_reverse_iteratorКонстантный реверсивный итератор
value_typeТип значения, хранимого в контейнере
allocator_typeТип распределителя (памяти)
key_typeТип ключа
key_compareТип функции, которая сравнивает два ключа
mapped_typeТип значения, сохраняемого в отображении
value_compareТип функции, которая сравнивает два значения

   
Со следующего шага мы начнем знакомиться с векторами.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий