Moron / Aryabhatta ma rację, ale trochę więcej szczegółów może być pomocnych.
Kolejka i stos są kontenerami wyższego poziomu niż deque, vector czy lista. Rozumiem przez to, że możesz zbudować kolejkę lub składować z kontenerów niższego poziomu.
Na przykład:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
Zbuduje stos ints przy użyciu deque jako podstawowego kontenera i kolejki double przy użyciu listy jako podstawowego kontenera.
Możesz myśleć o sograniczonym deque i qjako o ograniczonej liście.
Wszystko, co jest potrzebne, to aby kontener niższego poziomu implementował metody wymagane przez kontener wyższego poziomu. Są back(), push_back()i pop_back()na stosie i front(), back(), push_back(), i pop_front()do kolejki.
Więcej szczegółów znajdziesz w sekcji stos i kolejka .
Jeśli chodzi o deque, jest to znacznie więcej niż kolejka, w której można wstawić na obu końcach. W szczególności ma dostęp losowy operator[]. To sprawia, że bardziej przypomina wektor, ale wektor, w którym można wstawiać i usuwać na początku za pomocą push_front()i pop_front().
Szczegółowe informacje można znaleźć w deque .
stackiqueuepo prostu ograniczdequejego pełny zestaw funkcji.