Moron è corretto, ma un po 'più di dettaglio può essere utile.
La coda e lo stack sono contenitori di livello superiore rispetto a deque, vector o list. Con ciò intendo che puoi creare una coda o uno stack dai contenitori di livello inferiore.
Ad esempio:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
costruirà una pila di interi che utilizzano un deque come contenitore sottostante e una coda dei doppi usando una lista come il contenitore sottostante.
Si può pensare a s
come deque limitato e q
come elenco limitato.
Tutto ciò che è necessario è che il contenitore di livello inferiore implementa i metodi necessari per il contenitore di livello superiore. Questi sono back()
, push_back()
e pop_back()
per stack e front()
, back()
, push_back()
e pop_front()
per la coda.
Vedi stack e queue per maggiori dettagli.
Per quanto riguarda il deque, è molto più di una coda in cui è possibile inserire ad entrambe le estremità. In particolare, ha l'accesso casuale operator[]
. Ciò lo rende più simile a un vettore, ma a un vettore in cui è possibile inserire ed eliminare all'inizio con push_front()
e pop_front()
.
Vedere deque per dettagli.
fonte
2010-02-11 22:02:15
'stack' e' queue' ___just restrict___ 'deque' dal suo set completo. – bobobobo
"Moron è corretto". 7 anni dopo quel tipo di linguaggio ti avrebbe messo al bando per tutta la vita. – ytpillai
lol MrGreen Sì, al momento mi riferivo ad un'altra risposta qui. O l'utente ha cambiato il suo nome, o la risposta è stata cancellata da allora. –