Sobes.tech
Junior

Kokiuose konteineriuose pagrįstos duomenų struktūros stack ir queue?

sobes.tech AI

Atsakymas iš AI

std::stack pagal numatytuosius nustatymus yra pagrįstas std::deque. std::queue taip pat pagal numatytuosius nustatymus yra pagrįstas std::deque.

Kitaip konteineriai taip pat gali būti naudojami:

  • std::stack gali būti pagrįstas std::vector arba std::list.
  • std::queue gali būti pagrįstas std::list.

Bazinės konteinerio sąlyga: palaiko operacijas pridėti ir pašalinti elementus iš vieno arba abiejų galų (stack - tik iš vienos, queue - iš skirtingų).

Pavyzdžiai naudojimo su kitais konteineriais:

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

// `std::vector` pagrįstas stack
std::stack<int, std::vector<int>> vector_stack;

// `std::list` pagrįstas stack
std::stack<int, std::list<int>> list_stack;

// `std::list` pagrįsta eilė
std::queue<int, std::list<int>> list_queue;