STL Container Adapters
stack (LIFO), queue (FIFO), priority_queue (max-heap) — տեսողականորեն դիտեք push/pop/top, sift-up/down քայլերը, top/front/back ցուցիչները։
std::stack — LIFO ադապտեր (Last In, First Out)
Բոլոր գործողությունները՝ վերին ծայրում (top)։ Push դնում է վերևից, pop վերցնում է վերևից։ Հիմքում՝
std::deque (default) կամ std::vector։ Բոլոր op-ները՝ O(1)։- ✓ push / pop / top — O(1) ամորտիզացված
- ✓ Function-call stack, undo, expression eval, DFS
- ✗ Չկա random access, ոչ middle insert
std::queue — FIFO ադապտեր (First In, First Out)
Push back-ին, pop՝ front-ից։ Երկու ծայր, երկու ցուցիչ։ Հիմքում՝
std::deque (default) — pop-ը O(1)։ Vector-ով կլիներ O(n)։- ✓ push / pop / front / back — O(1)
- ✓ BFS, task scheduler, producer-consumer
- ✗ Չկա random access, ոչ priority
std::priority_queue — heap-հիմնված (default՝ max-heap)
Բինար heap zangvac-ի վրա (
std::vector)։ top = max միշտ՝ root-ում։ Push-ից հետո՝ sift-up, pop-ից հետո՝ sift-down։ Push/pop՝ O(log n), top՝ O(1)։- ✓ top — O(1), push/pop — O(log n)
- ✓ Dijkstra, A*, top-K, scheduling priorities
- ✗ Չկա ընդհանուր find / sorted iteration (heap ≠ sorted array)
Stagger push
0 / 0