Пример Deque в C ++ | Сегодняшняя тема — программа C ++ Deque. Deque означает двустороннюю очередь. Произносится как «колода». Это контейнеры, которые имеют динамические размеры и могут расширяться или сжиматься с обоих концов, т.е. оба конца работают в этой двухсторонней очереди. Векторы также имеют непрерывное выделение памяти, но в случае двухсторонней очереди память обычно выделяется динамически.
- Deque в примере C ++
- Различные методы, связанные с deque
- insert ( )
- rbegin ()
- rend ()
- cbegin ()
- max_size ()
- resize ()
- push_front ()
- push_back ()
- pop_front ()
- pop_back ()
- clear ()
- erase ()
- front ()
- at ()
- swap ()
- begin ()
- end ( )
- emplace_front ()
- emplace_back ()
- Программа Deque на C ++
- Сложность времени
- Заключение
- Рекомендуемые сообщения
Deque в примере C ++
Deque — это структура данных, которая реализована в двусторонней очереди. Это связано с очередью, так как в очереди вставка выполняется в конце, а удаление выполняется спереди. Двусторонние очереди — это отдельные очереди, в которых вставка и удаление возможны на обоих концах.
std :: deque (двусторонняя очередь) — это контейнер с индексированной последовательностью, который позволяет быстро вставлять и удалять при и его начало, и его конец. Кроме того, вставка и удаление в любом конце двухсторонней очереди никогда не аннулируют указатели или ссылки на остальные элементы.
Deque имеет функцию pop () и push () для передней и задней части.
Инициализация двухсторонней очереди : deque deque_name, где x — тип данных.
Различные методы, связанные с deque
insert ( )
Он используется для вставки элемента и возвращает итератор, указывающий на первый из вновь вставленных элементов.
rbegin ()
Он возвращает обратный итератор, который указывает на последний элемент deque.
rend ()
Он возвращает обратный итератор, который указывает на позицию перед началом двухсторонней очереди.
cbegin ()
Он возвращает постоянный итератор, который указывает на первый элемент контейнера.
assign ()
Он используется для присвоения значений одному и тому же или другой контейнер двухсторонней очереди.
max_size ()
Он возвращает максимальное количество элементов, которое может содержать конкретная двухсторонняя очередь.
resize ()
Эта функция изменяет размер очереди.
push_front ()
Он выталкивает элементы в двухстороннюю очередь спереди.
push_back ()
Он используется для выталкивания элементов в двухсторонней очереди сзади.
pop_front ()
Он используется для выталкивания элементов из начала очереди.
pop_back ()
Используется для извлекать элементы из задней части очереди.
clear ()
Используется для удаления всех элементов из двухсторонней очереди. .
erase ()
Используется для удаления элементов из указанной позиции.
front ()
Используется для ссылки на первый элемент двухсторонней очереди.
Используется для ссылки на последний элемент двухсторонней очереди.
at ()
Используется для ссылки на элемент, присутствующий в позиции, заданной в качестве параметра данной функции.
swap ()
Используется для замены содержимого одной двухсторонней очереди другой двухсторонней очереди того же типа и размера.
begin ()
Возвращает итератор к первому элементу двухсторонней очереди.
end ( )
Возвращает итератор к последнему элементу двухсторонней очереди.
emplace_front ()
Используется для вставки нового элемента в начало очереди.
emplace_back ()
Он используется для вставки нового элемента в заднюю часть контейнера.
Для deque определены другие методы.
Программа Deque на C ++
Q1 — Напишите программу, чтобы протолкнуть 2 элемента из интерфейса и 2 элемента nts из серверной части и распечатайте двухстороннюю очередь.
#include #include using namespace std; void showdata (deque deque1) {deque :: iterator iterator_1; for (iterator_1 = deque1.begin (); iterator_1! = deque1.end (); ++ iterator_1) cout myqueue; myqueue.push_front (230); //получение данных с лицевой стороны myqueue.push_front (240); //получение данных с лицевой стороны myqueue.push_back (250); //получение данных обратно myqueue.push_back (260); //получение данных из back coutСм. следующий результат.
![]()
Q2 - Напишите программу, которая помещает 5 элементов в двухстороннюю очередь и выталкивает два элемента, а затем выводит размер двухсторонней очереди.
#include #include с использованием пространства имен std; void showdata (deque deque1) {deque :: iterator iterator_1; for (iterator_1 = deque1.begin (); iterator_1! = deque1.end (); ++ iterator_1) cout myqueue; myqueue.push_front (230); //получение данных с лицевой стороны myqueue.push_front (240); //получение данных с лицевой стороны myqueue.push_back (250); //получение данных обратно myqueue.push_back (260); //получение данных из back coutПосмотреть результат.
![]()
Сложность времени
Сложность (эффективность) основных операций над двухсторонними операциями следующая:
- Произвольный доступ: константа O (1)
- Вставка или удаление элементов в конце или начале - константа O (1)
- Вставка или удаление элементов - линейный O (n)
Заключение
Deques являются одним из многие контейнеры стандартной библиотеки шаблонов (STL) в настоящее время доступны в C ++.
Их название предполагает более выгодную сделку относительно их предполагаемого использования и того, что с ними возможно.
Наконец, Deque в примере C ++ | Программа Deque на C ++ завершена.
Рекомендуемые сообщения
Очереди в примере C ++
Учебное пособие по спискам C ++ с примером
Учебное пособие по итераторам C ++ с примером
Учебное пособие по массивам C ++ с примером
Учебное пособие по шаблонам C ++ с примером