Moron / Aryabhatta tiene razón, pero un poco más de detalle puede ser útil.
La cola y la pila son contenedores de nivel superior que deque, vector o list. Con esto, quiero decir que puede crear una cola o apilar los contenedores de nivel inferior.
Por ejemplo:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
Construirá una pila de entradas usando una deque como contenedor subyacente y una cola de dobles usando una lista como contenedor subyacente.
Puede pensar sen una deque restringida y qcomo una lista restringida.
Todo lo que se necesita es que el contenedor de nivel inferior implemente los métodos que necesita el contenedor de nivel superior. Estos son back(), push_back()y pop_back()para la pila y front(), back(), push_back(), ypop_front() para la cola.
Consulte pila y cola para obtener más detalles.
Con respecto a la deque, es mucho más que una cola donde se puede insertar en ambos extremos. En particular, tiene acceso aleatorio operator[]. Esto lo hace más como un vector, pero un vector donde puede insertar y eliminar al principio con push_front()y pop_front().
Consulte la etiqueta para obtener más detalles.
stackyqueuesimplemente restringirdequesu conjunto completo de funciones.