Przestrzenie nazw
Warianty
Działania

std::stack

Z cppreference.com
< cpp‎ | container


Zdefiniowane w nagłówku <stack>
template<

    class T,
    class Container =std::deque<T>

>class stack;

std::stack (stos) jest adapterem kontenera, zapewniająca programiście funkcjonalność stosu - struktury danych FILO (first-in, last-out; pierwszy na wejściu, ostatni na wyjściu).

Szablon tej klasy funkcjonuje jak opakowanie do kontenera - umożliwia tylko pewien konkretny zbiór operacji. Stos operuje tylko na końcu opakowywanego kontenera, nazywanym wierzchołkiem stosu (top()). Możliwymi działaniami jest dodanie elementu na koniec (wrzucenie na stos) i usunięcie elementu z końca (zdjęcie ze stosu).

Spis treści

[edytuj]Parametry szablonu

T - Typ przechowywanych elementów.
Container - Typ opakowywanego kontenera, wykorzystywanego do przechowywania elementów. Kontener ten musi spełniać wymogi SequenceContainer. Dodatkowo, musi zapewniać następujące metody, ze standardową semantyką:
  • back()
  • push_back()
  • pop_back()

Standardowe kontenery std::vector, std::deque i std::list spełniają te wymogi.

[edytuj]Typy składowe

Typ składowy Definicja
container_typeContainer[edit]
value_typeContainer::value_type[edit]
size_typeContainer::size_type[edit]
referenceContainer::reference[edit]
const_referenceContainer::const_reference[edit]

[edytuj]Metody

Konstruuje stack
(publiczna metoda)[edit]
Niszczy stack
(publiczna metoda)[edit]
przypisuje wartości do adaptora kontenera
(publiczna metoda)[edit]
Dostęp do elementów
dostęp do szczytowego elementu
(publiczna metoda)[edit]
Pojemność
sprawdza, czy opakowany kontener jest pusty
(publiczna metoda)[edit]
zwraca liczbę elementów
(publiczna metoda)[edit]
Modyfikatory
wstawia element na szczyt
(publiczna metoda)[edit]
(C++11)
konstruuje element "w miejscu" na szczycie
(publiczna metoda)[edit]
usuwa szczytowy element
(publiczna metoda)[edit]
zamienia zawartość
(publiczna metoda)[edit]

Pola składowe

Container c
opakowywany kontener
(chroniony obiekt składowy)[edit]

[edytuj]Funkcje operujące na zawartości

leksykograficznie porównuje wartości w stack
(szablon funkcji)[edit]
specjalizacja dla algorytmu std::swap
(szablon funkcji)[edit]

[edytuj]Klasy pomocnicze

specializes the std::uses_allocator type trait
(szablon funkcji)[edit]

[edytuj]Notka

Warto rozpatrzeć możliwość wykorzystania innego kontenera, niż domyślne deque. Przy wielu zastosowaniach korzystając zamiast tego z wektora vector uzyska się lepszą średnią wydajność (kosztem potencjalnie większego zużycia pamięci i liniowej złożoności operacji push() w przypadku pesymistycznym).

close