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 s
ograniczonym deque i q
jako 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 .
stack
iqueue
po prostu ograniczdeque
jego pełny zestaw funkcji.