std::map, std::deque, std::list

std::map

template<
    class Key,
    class T,
    class Compare = std::less<Key>,
    class Allocator = std::allocator<std::pair<const Key, T> >
> class map;

std::map – отсортированный ассоциативный контейнер, содержащий пары ключ-значение с уникальными ключами. Ключи отсортированы с помощью функции сравнения Compare.

Члены-функции

(конструктор) Создаёт map
(public функция-член)
(деструктор) Уничтожает map
(public функция-член)
operator= Задаёт значения в контейнере
(public функция-член)
get_allocator Возвращает связанный аллокатор
(public функция-член)
Доступ к элементам
at (C++11) Предоставляет доступ к указанному элементу с проверкой индекса
(public функция-член)
operator[] Предоставляет доступ к указанному элементу
(public функция-член)
Итераторы
begin
cbegin
Возвращает итератор на первый элемент
(public функция-член)
end
cend
Возвращает итератор на элемент, следующий за последним
(public функция-член)
rbegin
crbegin
Возвращает обратный итератор на первый элемент
(public функция-член)
rend
crend
Возвращает обратный итератор на элемент, следующий за последним
(public функция-член)
Содержимое
empty Проверяет отсутствие элементов в контейнере
(public функция-член)
size Возвращает количество элементов в контейнере
(public функция-член)
max_size Возвращает максимально допустимое количество элементов в контейнере
(public функция-член)
Изменение
clear Очищает контейнер
(public функция-член)
insert Вставляет элементы
(public функция-член)
emplace(C++11) Конструирует элементы “на месте” и вставляет их начиная с заданной позиции pos
(public функция-член)
emplace_hint (C++11) Элементы конструкций на месте использования подсказки 

(public функция-член)
erase Удаляет элементы
(public функция-член)
swap Обменивает содержимое
(public функция-член)
Поиск
count Возвращает количество элементов, соответствующих определенному ключу
(public функция-член)
find находит элемент с конкретным ключом

(public функция-член)
equal_range возвращает набор элементов для конкретного ключа

(public функция-член)
lower_bound возвращает итератор на первый элемент не меньше, чем заданное значение

(public функция-член)
upper_bound возвращает итератор на первый элемент больше, чем определенное значение

(public функция-член)
Наблюдатели
key_comp возвращает функцию, сравнивающую ключи
(public функция-член)
value_comp возвращает функцию, сравнивающую значения
(public функция-член)

std::deque

std::deque – (двусторонняя очередь) представляет собой последовательный индексированный контейнер, который позволяет быстро вставлять и удалять элементы с начала и с конца. Кроме того, вставка и удаление с обоих концов двусторонней очереди оставляет действительными указатели и ссылки на остальные элементы.

Контейнеры vector и deque очень схожи по описанию. Тем не менее, разница между ними есть и весьма существенная. Кроме того, что к deque можно добавлять элементы в начало, он отличается от vector размещением в памяти. vector всегда будет размещаться в памяти последовательно. Благодаря этому он может очень удачно прикидываться простым массивом. И у него есть специфичные функции для работы с этой самой памятью. Из-за последовательного размещения в памяти произвольный доступ к элементам очень быстрый.
А вот deque может быть запросто в памяти сегментирован. Обычно он реализуется как массив массивов. Поэтому доступ к элементам будет помедленнее. Но зато при добавлении элементов не будет возникать тех проблем, что имеют место у vector с выделением последовательных кусков памяти. Элементы deque не хранятся непрерывно: обычно реализован с помощью набора выделенных массивов фиксированного размера.

Хранилище deque обрабатывается автоматически, расширяясь и сужаясь по мере необходимости. Расширение deque дешевле, чем расширение std::vector, потому что оно не требует копирования существующих элементов в новый участок памяти.

Функции

clear Очищает контейнер (public функция-член)
insert Вставляет элементы (public функция-член)
emplace (C++11) Конструирует элементы “на месте” и вставляет их начиная с заданной позиции pos (public функция-член)
erase Удаляет элементы (public функция-член)
push_back добавляет элемент в конец (public функция-член)
emplace_back (C++11) Конструирует элементы “на месте” в конце контейнера (public функция-член)
pop_back Удаляет последний элемент (public функция-член)
push_front вставляет элементы в начало списка (public функция-член)
emplace_front (C++11) конструирует элементы “на месте” в начало списка (public функция-член)
pop_front удаляет первый элемент (public функция-член)
resize Изменяет количество хранимых элементов (public функция-член)
swap Обменивает содержимое (public функция-член)


std::list

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

clear Очищает контейнер (public функция-член)
insert Вставляет элементы (public функция-член)
emplace (C++11) Конструирует элементы “на месте” и вставляет их начиная с заданной позиции pos (public функция-член)
erase Удаляет элементы (public функция-член)
push_back добавляет элемент в конец (public функция-член)
emplace_back (C++11) Конструирует элементы “на месте” в конце контейнера (public функция-член)
pop_back Удаляет последний элемент (public функция-член)
push_front вставляет элементы в начало списка (public функция-член)
emplace_front (C++11) конструирует элементы “на месте” в начало списка (public функция-член)
pop_front удаляет первый элемент (public функция-член)
resize Изменяет количество хранимых элементов (public функция-член)
swap Обменивает содержимое (public функция-член)

merge слияние двух отсортированных списков (public функция-член)
splice перемещает элементы из другого list (public функция-член)
remove удаляет элементы
remove_if удаляет элементы, удовлетворяющие определенным критериям (public функция-член)
reverse инвертирует порядок элементов (public функция-член)
unique удаляются последовательно повторяющиеся элементы (public функция-член)
sort сортирует элементы (public функция-член)