std::stack
Ta strona została ukończona i wymaga przejrzenia. Jeśli przejrzysz tę stronę i nie znajdziesz błędów, zwiększ argument tego szablonu o 1. Znalezione błędy możesz poprawić samemu lub zgłosić na tej stronie. Obecnie przejrzało: 0 osób ✰✰✰ |
Zdefiniowane w nagłówku <stack> | ||
template< class T, | ||
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ą:
Standardowe kontenery std::vector, std::deque i std::list spełniają te wymogi. |
[edytuj]Typy składowe
Typ składowy | Definicja |
container_type | Container |
value_type | Container::value_type |
size_type | Container::size_type |
reference | Container::reference |
const_reference | Container::const_reference |
[edytuj]Metody
Konstruuje stack (publiczna metoda) | |
Niszczy stack (publiczna metoda) | |
przypisuje wartości do adaptora kontenera (publiczna metoda) | |
Dostęp do elementów | |
dostęp do szczytowego elementu (publiczna metoda) | |
Pojemność | |
sprawdza, czy opakowany kontener jest pusty (publiczna metoda) | |
zwraca liczbę elementów (publiczna metoda) | |
Modyfikatory | |
wstawia element na szczyt (publiczna metoda) | |
(C++11) | konstruuje element "w miejscu" na szczycie (publiczna metoda) |
usuwa szczytowy element (publiczna metoda) | |
zamienia zawartość (publiczna metoda) | |
Pola składowe | |
Container c | opakowywany kontener (chroniony obiekt składowy) |
[edytuj]Funkcje operujące na zawartości
leksykograficznie porównuje wartości w stack (szablon funkcji) | |
specjalizacja dla algorytmu std::swap (szablon funkcji) |
[edytuj]Klasy pomocnicze
specializes the std::uses_allocator type trait (szablon funkcji) |
[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).