Sobes.tech
Junior

Em que containers são baseadas as estruturas de dados stack e queue?

sobes.tech IA

Resposta da IA

std::stack por padrão é baseado em std::deque. std::queue também é baseado em std::deque por padrão.

Pode-se usar outros contêineres:

  • std::stack pode ser baseado em std::vector ou std::list.
  • std::queue pode ser baseado em std::list.

Condição necessária para o contêiner base: suporte para operações de adição e remoção de elementos de um ou ambos os extremos (para stack - apenas de um, para queue - de diferentes).

Exemplos de uso com outros contêineres:

#include <stack>
#include <queue>
#include <vector>
#include <list>

// stack baseado em std::vector
std::stack<int, std::vector<int>> vector_stack;

// stack baseado em std::list
std::stack<int, std::list<int>> list_stack;

// queue baseado em std::list
std::queue<int, std::list<int>> list_queue;