Пространства имён
Варианты
Действия

Контейнеры

Материал из cppreference.com
< cpp

Библиотека контейнеров является универсальной коллекцией шаблонов классов и алгоритмов, позволяющих программистам легко реализовывать общие структуры данных, такие как очереди, списки и стеки. Существует три вида контейнеров: последовательные контейнеры, ассоциативные контейнеры, и неупорядоченные ассоциативные контейнеры, каждый из которых предназначен для поддержки различных наборов операций.

Контейнер управляет выделяемой для его элементов памятью и предоставляет функции-члены для доступа к ним, либо непосредственного, либо через итераторы (объекты, обладающие схожими с указателями свойствами).

Большинство контейнеров обладают по крайней мере несколькими общими функциями-членами и общей функциональностью. Выбор оптимального контейнера для конкретного случая зависит не только от предоставляемой функциональности, но и от его эффективности при различных рабочих нагрузках.

Содержание

[править] Последовательные контейнеры

Последовательные контейнеры реализуют структуры данных с возможностью последовательного доступа к ним.

(начиная с C++11)
статический непрерывный массив
(шаблон класса) [edit]
динамический непрерывный массив
Оригинал:
dynamic contiguous array
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
Двусторонняя очередь
(шаблон класса) [edit]
(начиная с C++11)
односвязный список
Оригинал:
singly-linked list
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
двусвязный список
(шаблон класса) [edit]

[править] Ассоциативные контейнеры

Ассоциативные контейнеры реализуют упорядоченные структуры данных с возможностью быстрого поиска (со сложностью O(log n)).

Коллекция уникальных ключей, отсортированная по ключам
(шаблон класса) [edit]
Коллекция пар ключ-значение, отсортированная по ключам, ключи являются уникальными
(шаблон класса) [edit]
Коллекция ключей, отсортированная по ключам
(шаблон класса) [edit]
Коллекция пар ключ-значение, отсортированная по ключам
(шаблон класса) [edit]

[править] Неупорядоченные ассоциативные контейнеры

Неупорядоченные ассоциативные контейнеры реализуют неупорядоченные (хешированные) структуры данных с возможностью быстрого поиска (со средней сложностью O(1), в худшем случае O(n)).

(начиная с C++11)
Коллекция уникальных ключей, хэш-ключами
Оригинал:
collection of unique keys, hashed by keys
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
(начиная с C++11)
Коллекция пар ключ-значение, хэширован ключи, ключи являются уникальными
Оригинал:
collection of key-value pairs, hashed by keys, keys are unique
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
(начиная с C++11)
Коллекция ключей, хэш-ключами
Оригинал:
collection of keys, hashed by keys
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
(начиная с C++11)
Коллекция пар ключ-значение, хешируется по ключам
Оригинал:
collection of key-value pairs, hashed by keys
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]

[править] Адаптеры контейнеров

Адаптеры контейнеров предоставляют различные интерфейсы для последовательных контейнеров.

адаптируется контейнеров обеспечить стек (LIFO структуры данных)
Оригинал:
adapts a container to provide stack (LIFO data structure)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
адаптируется контейнера обеспечивают очереди (FIFO структуры данных)
Оригинал:
adapts a container to provide queue (FIFO data structure)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]
адаптируется контейнеров обеспечить приоритет очереди
Оригинал:
adapts a container to provide priority queue
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]

[править] Таблица функций-членов

- 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>
 
array
vector
deque
forward_list
list
set
multiset
map
multimap
unordered_set
unordered_multiset
unordered_map
unordered_multimap
stack
queue
priority_queue
(constructor)
(implicit)
vector
deque
forward_list
list
set
multiset
map
multimap
unordered_set
unordered_multiset
unordered_map
unordered_multimap
stack
queue
priority_queue
(destructor)
(implicit)
~vector
~deque
~forward_list
~list
~set
~multiset
~map
~multimap
~unordered_set
~unordered_multiset
~unordered_map
~unordered_multimap
~stack
~queue
~priority_queue
operator=
(implicit)
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
assign
N/A
assign
assign
assign
assign
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Iterators
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
begin
cbegin
N/A N/A N/A
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
end
cend
N/A N/A N/A
rbegin
crbegin
rbegin
crbegin
rbegin
crbegin
rbegin
crbegin
N/A
rbegin
crbegin
rbegin
crbegin
rbegin
crbegin
rbegin
crbegin
rbegin
crbegin
N/A N/A N/A N/A N/A N/A N/A
rend
crend
rend
crend
rend
crend
rend
crend
N/A
rend
crend
rend
crend
rend
crend
rend
crend
rend
crend
N/A N/A N/A N/A N/A N/A N/A
Element
access
at
at
at
at
N/A N/A N/A N/A
at
N/A N/A N/A
at
N/A N/A N/A N/A
operator[]
operator[]
operator[]
operator[]
N/A N/A N/A N/A
operator[]
N/A N/A N/A
operator[]
N/A N/A N/A N/A
front
front
front
front
front
front
N/A N/A N/A N/A N/A N/A N/A N/A N/A
front
top
back
back
back
back
N/A
back
N/A N/A N/A N/A N/A N/A N/A N/A
top
back
N/A
Capacity
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
size
size
size
size
N/A
size
size
size
size
size
size
size
size
size
size
size
size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
max_size
N/A N/A N/A
resize
N/A
resize
resize
resize
resize
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
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
reserve
N/A
reserve
N/A N/A N/A N/A N/A N/A N/A
reserve
reserve
reserve
reserve
N/A N/A N/A
shrink_to_fit
N/A
shrink_to_fit
shrink_to_fit
N/A 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
clear
N/A
clear
clear
clear
clear
clear
clear
clear
clear
clear
clear
clear
clear
N/A N/A N/A
insert
N/A
insert
insert
insert_after
insert
insert
insert
insert
insert
insert
insert
insert
insert
N/A N/A N/A
emplace
N/A
emplace
emplace
emplace_after
emplace
emplace
emplace
emplace
emplace
emplace
emplace
emplace
emplace
N/A N/A N/A
emplace_hint
N/A N/A N/A N/A N/A
emplace_hint
emplace_hint
emplace_hint
emplace_hint
emplace_hint
emplace_hint
emplace_hint
emplace_hint
N/A N/A N/A
erase
N/A
erase
erase
erase_after
erase
erase
erase
erase
erase
erase
erase
erase
erase
N/A N/A N/A
push_front
N/A N/A
push_front
push_front
push_front
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
emplace_front
N/A N/A
emplace_front
emplace_front
emplace_front
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
pop_front
N/A N/A
pop_front
pop_front
pop_front
N/A N/A N/A N/A N/A N/A N/A N/A N/A
pop
N/A
push_back
N/A
push_back
push_back
N/A
push_back
N/A N/A N/A N/A N/A N/A N/A N/A
push
push
push
emplace_back
N/A
emplace_back
emplace_back
N/A
emplace_back
N/A N/A N/A N/A N/A N/A N/A N/A
emplace
emplace
emplace
pop_back
N/A
pop_back
pop_back
N/A
pop_back
N/A N/A N/A N/A N/A N/A N/A N/A
pop
N/A
pop
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
swap
List operations
merge
N/A N/A N/A N/A
merge
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
splice
N/A N/A N/A N/A
splice
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
remove
N/A N/A N/A N/A
remove
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
remove_if
N/A N/A N/A N/A
remove_if
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
reverse
N/A N/A N/A N/A
reverse
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
unique
N/A N/A N/A N/A
unique
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
sort
N/A N/A N/A N/A
sort
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Lookup
count
N/A N/A N/A N/A N/A
count
count
count
count
count
count
count
count
N/A N/A N/A
find
N/A N/A N/A N/A N/A
find
find
find
find
find
find
find
find
N/A N/A N/A
lower_bound
N/A N/A N/A N/A N/A
lower_bound
lower_bound
lower_bound
lower_bound
N/A N/A N/A N/A N/A N/A N/A
upper_bound
N/A N/A N/A N/A N/A
upper_bound
upper_bound
upper_bound
upper_bound
N/A N/A N/A N/A N/A N/A N/A
equal_range
N/A N/A N/A N/A N/A
equal_range
equal_range
equal_range
equal_range
equal_range
equal_range
equal_range
equal_range
N/A N/A N/A
Observers
key_comp
N/A N/A N/A N/A N/A
key_comp
key_comp
key_comp
key_comp
N/A N/A N/A N/A N/A N/A N/A
value_comp
N/A N/A N/A N/A N/A
value_comp
value_comp
value_comp
value_comp
N/A N/A N/A N/A N/A N/A N/A
hash_function
N/A N/A N/A N/A N/A N/A N/A N/A N/A
hash_function
hash_function
hash_function
hash_function
N/A N/A N/A
key_eq
N/A N/A N/A N/A N/A N/A N/A N/A N/A
key_eq
key_eq
key_eq
key_eq
N/A N/A N/A
Allocator
get_allocator
N/A
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
N/A N/A N/A
 
array
vector
deque
forward_list
list
set
multiset
map
multimap
unordered_set
unordered_multiset
unordered_map
unordered_multimap
stack
queue
priority_queue
Sequence containers Associative containers Unordered associative containers Container adaptors