Containers library

From cppreference.com
< cpp

The Containers library is a generic collection of class templates and algorithms that allow programmers to easily implement standard data structures like queues, lists and stacks. There are three classes of containers -- sequence containers, associative containers, and unordered associative containers -- each of which is designed to support a different set of operations.

Contents

[edit] Sequence containers

Sequence containers implement data structures which can be accessed sequentially.

(since C++11)
static contiguous array
(class template)
dynamic contiguous array
(class template)
double-ended queue
(class template)
(since C++11)
singly-linked list
(class template)
doubly-linked list
(class template)

[edit] Associative containers

Associative containers implement sorted data structures that can be quickly searched (O(log n) complexity).

collection of unique keys, sorted by keys
(class template)
collection of key-value pairs, sorted by keys, keys are unique
(class template)
collection of keys, sorted by keys
(class template)
collection of key-value pairs, sorted by keys
(class template)

[edit] Unordered associative containers

Associative containers implement unsorted (hashed) data structures that can be quickly searched (O(1) amortized, O(n) worst-case complexity).

(since C++11)
collection of unique keys, hashed by keys
(class template)
(since C++11)
collection of key-value pairs, hashed by keys, keys are unique
(class template)
(since C++11)
collection of keys, hashed by keys
(class template)
(since C++11)
collection of key-value pairs, hashed by keys
(class template)

[edit] Container adaptors

Container adaptors provide a different interface for sequential containers.

adapts a container to provide stack (LIFO data structure)
(class template)
adapts a container to provide queue (FIFO data structure)
(class template)
adapts a container to provide priority queue
(class template)

[edit] Member function table

- 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 N/A N/A N/A N/A 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
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