Назад к вопросам
Junior
98
questionbank
На каких контейнерах основаны структуры данных stack и queue?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
std::stack по умолчанию основан на std::deque. std::queue по умолчанию также основан на std::deque.
Можно использовать и другие контейнеры:
std::stackможет быть основан наstd::vectorилиstd::list.std::queueможет быть основан наstd::list.
Необходимое условие для базового контейнера: поддержка операций добавления и удаления элементов с одного или обоих концов (для stack - только с одного, для queue - с разных).
Примеры использования с другими контейнерами:
#include <stack>
#include <queue>
#include <vector>
#include <list>
// stack на базе std::vector
std::stack<int, std::vector<int>> vector_stack;
// stack на базе std::list
std::stack<int, std::list<int>> list_stack;
// queue на базе std::list
std::queue<int, std::list<int>> list_queue;