Kontener typu stack - stos
Stronę tą wyświetlono już: 3549 razy
Wstęp
Klasa stack jest implementacją stosu, czyli takiego kontenera, który umożliwia dynamiczne dodawanie elementów w taki sposób, że aby uzyskać dostęp do kolejnych elementów stosu konieczne jest zdjęcie ostatnio dodanego elementu. Stos jest kontenerem z dostępem typu LIFO, czyli ostatni wchodzi pierwszy wychodzi. Przykładową implementację stosu stworzyłem na stronie Programowanie → Podstawy C++ → Szablony klas na przykładzie własnej kolejki LIFO (stosu) przy okazji omawiania zagadnień związanych z szablonami klas.
Dostęp do klasy stack uzyskuje się poprzez załączenie pliku nagłówkowego stack.
Konstruktory klasy stack
Dwa podstawowe konstruktory to oczywiście konstruktor bezparametrowy i kopiujący:
Istnieje też wersja konstruktora bezparametrowego używającego kontenera innego typu, oto przykład:
Ostatni wariant umożliwia skopiowanie wartości z innego kontenera przechowującego ten sam typ danych:
Metody klasy stack
Oto metody klasy stack:
- empty - zwraca true, gdy stos nie zawiera elementów;
- size - zwraca liczbę elementów znajdujących się na stosie;
- top - umożliwia operację na ostatnio dodanym elemencie stosu
std::stack<int> stack; stack.push(10); stack.push(20); stack.top() += 20; std::cout << "Now last element of stack is equal: " << stack.top() << std::endl;
- push - dodaje element do stosu
- pop - zdejmuje ostatnio dodany element stosu
Jak widać, aby uzyskać dostęp do kolejnych elementów stosu konieczne jest zdjęcie ostatnio dodanego elementu.
Tytuł:
C++ Zbiór zadań z rozwiązaniami
Autor:
Tomasz Jaśniewski
Tytuł:
Mikrokontrolery dla hobbystów. Projekty DIY w języku C i C++
Autor:
Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla
Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski
Tytuł:
Wprowadzenie do C++
Autor:
Michał Matlak
Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz
Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha
Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams
Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis
Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół
Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz