РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
244 of 815 menu

Класс deque

Класс deque (double-ended queue) - это контейнер из стандартной библиотеки C++, который позволяет добавлять и удалять элементы с обоих концов за константное время. В отличие от vector, который эффективно работает только с концом, deque обеспечивает быстрый доступ к элементам по индексу и эффективные вставки/удаления в начале и в конце. В первом параметре шаблона указывается тип хранимых элементов, во втором (необязательном) - аллокатор памяти.

Синтаксис

#include <deque> std::deque<Type> name; std::deque<Type> name(size); std::deque<Type> name(size, value); std::deque<Type> name = {value1, value2, ...};

Пример

Давайте создадим двустороннюю очередь из 5 целых чисел и выведем её элементы:

#include <iostream> #include <deque> using namespace std; int main() { deque<int> deq = {1, 2, 3, 4, 5}; for (int elem : deq) { cout << elem << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте добавим элементы в начало и конец очереди с помощью методов push_front и push_back:

#include <iostream> #include <deque> using namespace std; int main() { deque<int> deq = {3, 4, 5}; deq.push_front(2); deq.push_front(1); deq.push_back(6); for (int elem : deq) { cout << elem << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5 6

Пример

Давайте удалим элементы с начала и конца очереди с помощью методов pop_front и pop_back:

#include <iostream> #include <deque> using namespace std; int main() { deque<int> deq = {1, 2, 3, 4, 5}; deq.pop_front(); deq.pop_back(); for (int elem : deq) { cout << elem << " "; } cout << endl; return 0; }

Результат выполнения кода:

2 3 4

Пример

Давайте получим доступ к элементам по индексу с помощью метода at и оператора [], а также узнаем размер очереди с помощью метода size:

#include <iostream> #include <deque> using namespace std; int main() { deque<int> deq = {10, 20, 30, 40, 50}; cout << "Element at index 2: " << deq.at(2) << endl; cout << "Element at index 4: " << deq[4] << endl; cout << "Size: " << deq.size() << endl; return 0; }

Результат выполнения кода:

"Element at index 2: 30" "Element at index 4: 50" "Size: 5"

Смотрите также

  • метод push_back,
    который добавляет элемент в конец очереди
  • метод push_front,
    который добавляет элемент в начало очереди
  • метод pop_back,
    который удаляет элемент с конца очереди
  • метод pop_front,
    который удаляет элемент с начала очереди
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить