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 функция-член)