Sobes.tech
Junior

Su quali contenitori sono basate le strutture dati stack e queue?

sobes.tech AI

Risposta dell'AI

std::stack per impostazione predefinita si basa su std::deque. Anche std::queue si basa su std::deque per impostazione predefinita.

È possibile utilizzare altri contenitori:

  • std::stack può essere basato su std::vector o std::list.
  • std::queue può essere basato su std::list.

Condizione necessaria per il contenitore di base: supporto per operazioni di aggiunta e rimozione di elementi da uno o entrambi gli estremi (per stack - solo da uno, per queue - da diversi).

Esempi di utilizzo con altri contenitori:

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

// stack basato su std::vector
std::stack<int, std::vector<int>> vector_stack;

// stack basato su std::list
std::stack<int, std::list<int>> list_stack;

// queue basato su std::list
std::queue<int, std::list<int>> list_queue;