De ce contează?
Stai la rând la casa unui supermarket. Cine a ajuns primul plătește primul și
pleacă; tu, care tocmai ai venit, te așezi la coadă, în spate. Nimeni nu sare
peste rând. Această regulă simplă — „primul venit, primul servit" — este exact
ce face structura queue din STL.
Ce este
std::queue este un adaptor peste un container (implicit std::deque) care
te lasă să folosești datele doar după regula FIFO — First In, First Out,
adică „primul intrat, primul ieșit". Adaugi mereu la spate și scoți mereu din
față. Nu poți citi sau modifica nimic din mijloc: coada îți dă acces doar la
cele două capete.
Asta o face opusul stivei (stack), care e LIFO — ultimul intrat iese primul.
La stivă lucrezi cu un singur capăt; la coadă, intri pe la unul și ieși pe la
celălalt.
Regula de aur a cozii: intri pe la spate, ieși pe la față. Ordinea în care elementele ies este exact ordinea în care au intrat. De aici vine și utilitatea ei: când vrei să procesezi lucrurile în ordinea sosirii, coada o garantează gratuit.