Moron est correct, mais un peu plus de détails peuvent être utiles. La file d'attente et la pile sont des conteneurs de niveau plus élevé que deque, vecteur ou liste. Par cela, je veux dire que vous pouvez construire une file d'attente ou empiler hors des conteneurs de niveau inférieur.
Par exemple:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
construira une pile de ints en utilisant un deque comme conteneur sous-jacent et une file d'attente de doubles en utilisant une liste que le conteneur sous-jacent.
Vous pouvez considérer s
comme une liste restreinte et q
comme une liste restreinte.
Tout ce qui est nécessaire est que le conteneur de niveau inférieur implémente les méthodes requises par le conteneur de niveau supérieur. Ce sont back()
, push_back()
et pop_back()
pour la pile et front()
, back()
, push_back()
et pop_front()
pour la file d'attente. Pour plus de détails, voir stack et queue pour plus de détails.
En ce qui concerne le deque, c'est beaucoup plus qu'une queue où vous pouvez insérer aux deux extrémités. En particulier, il a l'accès aléatoire operator[]
. Cela ressemble plus à un vecteur, mais un vecteur où vous pouvez insérer et supprimer au début avec push_front()
et pop_front()
.
Voir deque pour les détails.
'pile' et' queue' ___just restrict___ 'deque' de son ensemble complet. – bobobobo
"Moron est correct". 7 ans plus tard, ce type de langage vous interdira la vie. – ytpillai
lol :-D Oui, à l'époque je faisais référence à une autre réponse ici. Soit l'utilisateur a changé son nom, soit la réponse a été supprimée depuis. –