Рубрики

Deque в C ++ Стандартная библиотека шаблонов (STL)

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

Функции для deque такие же, как vector , с добавлением операций push и pop для передней и задней частей.

#include <iostream>
#include <deque>

  

using namespace std;

  

void showdq(deque <int> g)

{

    deque <int> :: iterator it;

    for (it = g.begin(); it != g.end(); ++it)

        cout << '\t' << *it;

    cout << '\n';

}

  

int main()

{

    deque <int> gquiz;

    gquiz.push_back(10);

    gquiz.push_front(20);

    gquiz.push_back(30);

    gquiz.push_front(15);

    cout << "The deque gquiz is : ";

    showdq(gquiz);

  

    cout << "\ngquiz.size() : " << gquiz.size();

    cout << "\ngquiz.max_size() : " << gquiz.max_size();

  

    cout << "\ngquiz.at(2) : " << gquiz.at(2);

    cout << "\ngquiz.front() : " << gquiz.front();

    cout << "\ngquiz.back() : " << gquiz.back();

  

    cout << "\ngquiz.pop_front() : ";

    gquiz.pop_front();

    showdq(gquiz);

  

    cout << "\ngquiz.pop_back() : ";

    gquiz.pop_back();

    showdq(gquiz);

  

    return 0;

}

Вывод вышеуказанной программы:

The deque gquiz is :     15    20    10    30

gquiz.size() : 4
gquiz.max_size() : 4611686018427387903
gquiz.at(2) : 10
gquiz.front() : 15
gquiz.back() : 30
gquiz.pop_front() :     20    10    30

gquiz.pop_back() :     20    10

Методы Deque:

  • функция deque insert () в C ++ STL : вставляет элемент. И возвращает итератор, который указывает на первый из вновь вставленных элементов.
  • Функция deque rbegin () в C ++ STL : возвращает обратный итератор, который указывает на последний элемент deque (т. е. на его обратное начало).
  • Функция deque rend () в C ++. STL : возвращает обратный итератор, который указывает на позицию перед началом deque (которая считается его обратным концом).
  • deque cbegin () в C ++ STL : возвращает постоянный итератор, указывающий на первый элемент контейнера, то есть итератор не может быть использован для изменения, а только для обхода deque.
  • Функция deque max_size () в C ++ STL : возвращает максимальное количество элементов, которое может содержать контейнер deque.
  • deque assign () функция в C ++ STL : присваивает значения одному и тому же или другому контейнеру deque.
  • deque resize () функция в C ++ STL : функция, которая изменяет размер deque.
  • deque :: push_front () в C ++ STL : эта функция используется для перемещения элементов в деку спереди.
  • deque :: push_back () в C ++ STL : эта функция используется для перемещения элементов в деку сзади.
  • deque :: pop_front () и deque :: pop_back () в C ++ STL : функция pop_front () используется для извлечения или удаления элементов из deque с фронта. Функция pop_back () используется для выталкивания или удаления элементов из задней части.
  • deque :: front () и deque :: back () в C ++ Функция STL : front () используется для ссылки на первый элемент контейнера deque. Функция back () используется для ссылки на последний элемент контейнера deque.
  • deque :: clear () и deque :: erase () в C ++ Функция STL : clear () используется для удаления всех элементов контейнера deque, что делает ее размером 0. Функция erase () используется для удаления элементов из контейнер из указанной позиции или диапазона.
  • deque :: empty () и deque :: size () в C ++ Функция STL : empty () используется для проверки, пуст ли контейнер deque или нет. Функция size () используется для возврата размера контейнера deque или количества элементов в контейнере deque.
  • deque :: operator = и deque :: operator [] в C ++ STL :
    operator = operator используется для назначения нового содержимого контейнеру путем замены существующего содержимого. operator [] operator используется для ссылки на элемент, присутствующий в позиции, указанной внутри оператора.
  • deque :: at () и deque :: swap () в C ++ Функция STL : at () используется для ссылки на элемент, присутствующий в позиции, заданной в качестве параметра функции. Функция swap () используется для обмена содержимым одной декы с другой декой того же типа и размера.
  • deque :: begin () и deque :: end в C ++ Функция STL : begin () используется для возврата итератора, указывающего на первый элемент контейнера deque. Функция end () используется для возврата итератора, указывающего на последний элемент контейнера deque.
  • deque :: emplace_front () и deque :: emplace_back () в C ++ STL : функция emplace_front () используется для вставки нового элемента в контейнер deque. Новый элемент добавляется в начало deque. Функция emplace_back () используется для вставки нового элемента в контейнер deque. Новый элемент добавляется в конец deque.

Последние статьи о Deque

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

Рекомендуемые посты:

Deque в C ++ Стандартная библиотека шаблонов (STL)

0.00 (0%) 0 votes