TGViewer
C/C++ | Вопросы собесов C/C++ | Вопросы собесов @easy_c_plus · 4.19K subscribers
Post #2493 498
🤔 Что такое deque?

Deque (double-ended queue, двусторонняя очередь) — это последовательный контейнер в C++, который позволяет добавлять и удалять элементы как с начала, так и с конца очереди с постоянной временной сложностью O(1). Контейнер deque является частью стандартной библиотеки шаблонов (STL) и объявляется в заголовочном файле <deque>.

🚩Основные характеристики:

🟠Быстрый доступ к элементам:
deque обеспечивает доступ к элементам по индексу с амортизированной временной сложностью O(1).
🟠Двусторонняя очередь:
Позволяет эффективно добавлять и удалять элементы как с начала, так и с конца очереди.
🟠Динамический размер:
deque автоматически изменяет свой размер по мере добавления или удаления элементов, подобно vector.
🟠Не требует смежного хранения:
В отличие от vector, элементы deque могут быть размещены в различных сегментах памяти, что делает его более гибким для частых операций вставки и удаления.

🚩Основные операции:

🟠Добавление элементов:
push_back(), push_front()
🟠Удаление элементов:
pop_back(), pop_front()
🟠Доступ к элементам:
operator[], at(), front(), back()
🟠Размер и емкость:
size(), empty(), resize()
🟠Итераторы:
Поддержка итераторов для прохода по элементам
#include <iostream>
#include <deque>

int main() {
std::deque<int> dq;

// Добавление элементов в конец
dq.push_back(1);
dq.push_back(2);
dq.push_back(3);

// Добавление элементов в начало
dq.push_front(0);

std::cout << "Deque elements: ";
for (int elem : dq) {
std::cout << elem << " ";
}
std::cout << std::endl;

// Удаление элемента с конца
dq.pop_back();

// Удаление элемента с начала
dq.pop_front();

std::cout << "Deque elements after pop operations: ";
for (int elem : dq) {
std::cout << elem << " ";
}
std::cout << std::endl;

return 0;
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_c_plus
  1. Oct 10, 2026🤔 Что знаешь про гарантии безопасности исключений? Гарантии безопасности исключений (Exce…
  2. Oct 9, 2026🤔 Строгая гарантия безопасности Гарантии безопасности исключений в C++ делятся на три уро…
  3. Oct 8, 2026🤔 Выбрасывание исключения из конструктора — это нормально? Да, выбрасывание исключения из…
  4. Oct 8, 2026🤔 Какое преимущество у list перед vector? List обеспечивает быстрые вставки и удаления за…
  5. Oct 7, 2026🤔 Как работает priority_queue? priority_queue управляет элементами на основе их приоритет…
  6. Oct 7, 2026🤔 Что такое placement new? placement new – это специальная форма оператора new, которая р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →