Библиотека контейнеров является универсальной коллекцией шаблонов классов и алгоритмов, позволяющих программистам легко реализовывать общие структуры данных, такие как очереди, списки и стеки. Существует три вида контейнеров: последовательные контейнеры, ассоциативные контейнеры, и неупорядоченные ассоциативные контейнеры, каждый из которых предназначен для поддержки различных наборов операций.
Контейнер управляет выделяемой для его элементов памятью и предоставляет функции-члены для доступа к ним, либо непосредственного, либо через итераторы (объекты, обладающие схожими с указателями свойствами).
Большинство контейнеров обладают по крайней мере несколькими общими функциями-членами и общей функциональностью. Выбор оптимального контейнера для конкретного случая зависит не только от предоставляемой функциональности, но и от его эффективности при различных рабочих нагрузках.
[править] Последовательные контейнеры
Последовательные контейнеры реализуют структуры данных с возможностью последовательного доступа к ним.
|
|
статический непрерывный массив (шаблон класса) [править]
|
|
|
динамический непрерывный массив Оригинал: 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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) [править]
|
[править] Таблица функций-членов
|
- functions present in C++03
|
|
- functions present since C++11
|
|
Sequence containers
|
Associative containers
|
Unordered associative containers
|
Container adaptors
|
Headers
|
<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
|
Iterators
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Element access
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
N/A
|
Capacity
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Modifiers
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
N/A
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
|
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List operations
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
Lookup
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
|
|
|
|
N/A
|
N/A
|
N/A
|
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
|
Allocator
|
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A
|
N/A
|
N/A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sequence containers
|
Associative containers
|
Unordered associative containers
|
Container adaptors
|