Sobes.tech
Junior

Na jakých kontejnerech jsou založeny datové struktury zásobník a fronta?

sobes.tech AI

Odpověď od AI

std::stack je ve výchozím nastavení založen na std::deque. std::queue je také ve výchozím nastavení založen na std::deque.

Lze použít i jiné kontejnery:

  • std::stack může být založen na std::vector nebo std::list.
  • std::queue může být založen na std::list.

Podmínkou pro základní kontejner je podpora operací přidávání a odstraňování prvků z jednoho nebo obou konců (pro stack pouze z jednoho, pro queue z různých).

Příklady použití s jinými kontejnery:

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

// zásobník založený na std::vector
std::stack<int, std::vector<int>> vector_stack;

// zásobník založený na std::list
std::stack<int, std::list<int>> list_stack;

// fronta založená na std::list
std::queue<int, std::list<int>> list_queue;