Учебники

Библиотека C ++ —

Deque является аббревиатурой для двойного конца очереди. Это контейнер последовательности, который может изменять размер среды выполнения. Контейнер — это объект, который содержит данные того же типа. Контейнеры последовательности хранят элементы строго в линейной последовательности.

Элементы deque могут быть разбросаны по разным частям памяти. Контейнер хранит необходимую информацию, чтобы обеспечить прямой доступ к любому элементу в постоянное время. В отличие от векторов, deque не гарантирует хранение всех своих элементов в смежных местах памяти. Следовательно, он не разрешает прямой доступ к данным путем смещения указателей. Но он обеспечивает прямой доступ к любому элементу, используя оператор индекса [].

Deque может уменьшаться или расширяться по мере необходимости с обоих концов во время выполнения. Требование к памяти автоматически выполняется внутренним распределителем . Deque обеспечивает схожую функциональность с векторами, но обеспечивает эффективный способ вставки и удаления данных с любого конца.

Запросы нулевого размера также действительны. В этом случае deque.begin () и deque.end () указывают на одно и то же местоположение. Но поведение вызова front () или back () не определено.

Определение

Ниже приведено определение std :: deque из заголовочного файла <deque>

template < class T, class Alloc = allocator<T> > class deque;

параметры

  • T — Тип содержащегося элемента.

    T может быть заменен любым другим типом данных, включая определенный пользователем тип.

  • Alloc — Тип объекта-распределителя.

    По умолчанию используется шаблон класса распределителя, который определяет простейшую модель выделения памяти и не зависит от значения.

T — Тип содержащегося элемента.

T может быть заменен любым другим типом данных, включая определенный пользователем тип.

Alloc — Тип объекта-распределителя.

По умолчанию используется шаблон класса распределителя, который определяет простейшую модель выделения памяти и не зависит от значения.

Типы участников

Следующие типы элементов могут использоваться в качестве параметров или типа возврата функциями-членами.

Sr.No. Типы участников Определение
1 тип ценности T (Первый параметр шаблона)
2 allocator_type Alloc (Второй параметр шаблона)
3 ссылка тип ценности&
4 const_reference const value_type &
5 указатель тип ценности*
6 const_pointer const value_type *
7 итератор итератор произвольного доступа к value_type
8 const_iterator итератор с произвольным доступом к const value_type
9 reverse_iterator std :: reverse_iterator <итератор>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 size_type size_t
12 difference_type ptrdiff_t

Функции из <deque>

Ниже приведен список всех методов из заголовка <deque>.

Создает пустую деку с нулевым элементом.

создать новую deque с n элементами и назначить val каждому элементу deque

Создает deque с таким количеством элементов, как в диапазоне от первого до последнего .

Создает deque с копией каждого элемента, присутствующего в существующем контейнере.

Создает deque с содержимым других, используя семантику перемещения.

Создает deque из списка инициализации.

Уничтожает объект deque, освобождая его память.

Присвойте новые значения элементам deque, заменив старые.

Присвойте новые значения элементам deque, заменив старые.

Присвойте новые значения элементам deque, заменив старые.

Возвращает ссылку на элемент, присутствующий в местоположении n в deque.

Возвращает ссылку на последний элемент deque.

Вернуть итератор произвольного доступа, указывающий на первый элемент deque.

Возвращает постоянный итератор произвольного доступа, который указывает на начало очереди.

Возвращает постоянный итератор произвольного доступа, который указывает на начало очереди.

Уничтожает deque путем удаления всех элементов из deque и устанавливает размер deque равным нулю.

Возвращает постоянный обратный итератор, который указывает на начало контейнера в обратном порядке.

Возвращает постоянный обратный итератор, который указывает на обратный конец очереди.

Расширяет контейнер, вставляя новый элемент в позицию .

Вставляет новый элемент в конце deque.

Вставляет новый элемент в начале deque.

Проверяет, пустой ли deque или нет.

Возвращает итератор, который указывает на последний элемент в контейнере deque.

Удаляет один элемент из очереди.

Удаляет один элемент из очереди.

Возвращает ссылку на первый элемент deque

Возвращает распределитель, связанный с deque

Расширяет контейнер, вставляя новый элемент в позицию.

Расширяет контейнер, вставляя новый элемент в контейнер.

Расширяет контейнер, вставляя новый элемент в контейнер.

Расширяет контейнер, вставляя новый элемент в контейнер.

Расширяет контейнер, вставляя новый элемент в контейнер.

Возвращает максимальное количество элементов, которое может быть удержано deque.

Присвойте новое содержимое деку, заменив старое, и при необходимости измените размер.

Присвойте новое содержимое деку, заменив старое, и при необходимости измените размер.

Присвойте новое содержимое деку, заменив старое, и при необходимости измените размер.

Возвращает ссылку на элемент, присутствующий в местоположении n .

Удаляет последний элемент из deque и уменьшает размер deque на один.

Удаляет первый элемент из deque и уменьшает размер deque на один.

Вставляет новый элемент в конец deque и увеличивает размер deque на единицу.

Вставляет новый элемент в конец deque и увеличивает размер deque на единицу.

Вставляет новый элемент в начало deque и увеличивает размер deque на единицу.

Вставляет новый элемент в начало deque и увеличивает размер deque на единицу.

Возвращает обратный итератор, который указывает на последний элемент deque.

Возвращает обратный итератор, который указывает на обратный конец очереди.

Изменяет размер deque.

Изменяет размер deque.

Запрашивает контейнер, чтобы уменьшить его емкость, чтобы соответствовать его размеру.

Возвращает количество элементов, присутствующих в деке.

Обменивает содержимое deque с содержимым другого deque x .

Проверяет, равны ли два запроса или нет.

Проверяет, равны ли два запроса или нет.

Проверяет, меньше ли первый deque, чем другие, или нет.

Проверяет, является ли первый deque меньше или равен другому или нет.

Проверяет, больше ли первый deque, чем другие, или нет.

Проверяет, является ли первый deque больше или равен другому или нет.

Обменяет содержимое двух дек.