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::stackmůže být založen nastd::vectornebostd::list.std::queuemůže být založen nastd::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;