Moron / Aryabhatta ist korrekt, aber ein bisschen mehr Details können hilfreich sein.
Warteschlange und Stapel sind Container höherer Ebene als Deque, Vektor oder Liste. Damit meine ich, dass Sie eine Warteschlange oder einen Stapel aus den Containern der unteren Ebene erstellen können.
Zum Beispiel:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
Erstellt einen Stapel von Ints unter Verwendung einer Deque als zugrunde liegenden Container und einer Warteschlange von Doubles unter Verwendung einer Liste als zugrunde liegenden Container.
Sie können sich s
eine eingeschränkte Deque und q
eine eingeschränkte Liste vorstellen .
Alles, was notwendig ist, ist, dass der Container der unteren Ebene die Methoden implementiert, die der Container der höheren Ebene benötigt. Diese sind back()
, push_back()
und pop_back()
für Stapel und front()
, back()
, push_back()
und pop_front()
für die Warteschlange.
Weitere Informationen finden Sie unter Stapel und Warteschlange .
In Bezug auf die Deque ist es viel mehr als eine Warteschlange, in die Sie an beiden Enden einfügen können. Insbesondere hat es den wahlfreien Zugriff operator[]
. Dies macht es eher zu einem Vektor, aber zu einem Vektor, in den Sie am Anfang mit push_front()
und einfügen und löschen können pop_front()
.
Siehe deque für Details.
stack
undqueue
nurdeque
von seinem vollen Funktionsumfang einschränken .