Шаг 2.
Библиотека STL.
Контейнерные классы

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

    Контейнеры представляют собой объекты 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 Тип функции, которая сравнивает два значения

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




Предыдущий шаг Содержание Следующий шаг