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).

