Библиотека контейнеров является универсальной коллекцией шаблонов классов и алгоритмов, позволяющих программистам легко реализовывать общие структуры данных, такие как очереди, списки и стеки. Существует три вида контейнеров: последовательные контейнеры, ассоциативные контейнеры, и неупорядоченные ассоциативные контейнеры, каждый из которых предназначен для поддержки различных наборов операций.
Контейнер управляет выделяемой для его элементов памятью и предоставляет функции-члены для доступа к ним, либо непосредственного, либо через итераторы (объекты, обладающие схожими с указателями свойствами).
Большинство контейнеров обладают по крайней мере несколькими общими функциями-членами и общей функциональностью. Выбор оптимального контейнера для конкретного случая зависит не только от предоставляемой функциональности, но и от его эффективности при различных рабочих нагрузках.
[править] Последовательные контейнеры
Последовательные контейнеры реализуют структуры данных с возможностью последовательного доступа к ним.
|
|
статический непрерывный массив (шаблон класса) [править]
|
|
|
динамический непрерывный массив Оригинал: dynamic contiguous array Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
Двусторонняя очередь (шаблон класса) [править]
|
|
|
односвязный список Оригинал: singly-linked list Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
двусвязный список (шаблон класса) [править]
|
[править] Ассоциативные контейнеры
Ассоциативные контейнеры реализуют упорядоченные структуры данных с возможностью быстрого поиска (со сложностью O(log n)).
|
|
Коллекция уникальных ключей, отсортированная по ключам (шаблон класса) [править]
|
|
|
Коллекция пар ключ-значение, отсортированная по ключам, ключи являются уникальными (шаблон класса) [править]
|
|
|
Коллекция ключей, отсортированная по ключам (шаблон класса) [править]
|
|
|
Коллекция пар ключ-значение, отсортированная по ключам (шаблон класса) [править]
|
[править] Неупорядоченные ассоциативные контейнеры
Неупорядоченные ассоциативные контейнеры реализуют неупорядоченные (хешированные) структуры данных с возможностью быстрого поиска (со средней сложностью O(1), в худшем случае O(n)).
|
|
Коллекция уникальных ключей, хэш-ключами Оригинал: collection of unique keys, hashed by keys Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
Коллекция пар ключ-значение, хэширован ключи, ключи являются уникальными Оригинал: collection of key-value pairs, hashed by keys, keys are unique Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
Коллекция ключей, хэш-ключами Оригинал: collection of keys, hashed by keys Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
Коллекция пар ключ-значение, хешируется по ключам Оригинал: collection of key-value pairs, hashed by keys Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
[править] Адаптеры контейнеров
Адаптеры контейнеров предоставляют различные интерфейсы для последовательных контейнеров.
|
|
адаптируется контейнеров обеспечить стек (LIFO структуры данных) Оригинал: adapts a container to provide stack (LIFO data structure) Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
адаптируется контейнера обеспечивают очереди (FIFO структуры данных) Оригинал: adapts a container to provide queue (FIFO data structure) Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
|
|
адаптируется контейнеров обеспечить приоритет очереди Оригинал: adapts a container to provide priority queue Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
[править] Таблица функций-членов
|
- функции, доступные в C++03
|
|
- функции, доступные начиная с C++11
|
|
Контейнеры последовательного доступа
|
Ассоциативные контейнеры
|
Неупорядоченные ассоциативные контейнеры
|
Адаптеры контейнеров
|
Заголовочный файл:
|
<array>
|
<vector>
|
<deque>
|
<forward_list>
|
<list>
|
<set>
|
<map>
|
<unordered_set>
|
<unordered_map>
|
<stack>
|
<queue>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(implicit)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(implicit)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(implicit)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Итераторы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Доступ к элементам
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
N/A
|
Размер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Изменение содержимого
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
N/A
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операции над списком
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Поиск
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
Observers
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
Аллокатор
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контейнеры последовательного доступа
|
Ассоциативные контейнеры
|
Неупорядоченные ассоциативные контейнеры
|
Адаптеры контейнеров
|