To jest stara wersja strony!
Szablon queue to jeden z adaptatorów kontenerów sekwencyjnych, czyli takich które przystosowują standardowe kontenery STL do specjalnych celów. Szablon klasy pozwala danej klasie (domyślnie deque) udostępniać typowy interfejs kolejki typu FIFO.
Szablon queue w odróżnieniu do deque nie pozwala na dostęp swobodny do elementów kolejki, ani na iteracje po kontenerze. Możliwe są podstawowe operacje: dodawanie elementu na koniec kolejki, usuwanie elementu z początku kolejki, sprawdzenie wartości początkowego i końcowego elementu, określenie liczby elementów oraz sprawdzenie czy kolejka jest pusta.
Interfejs kolejki z uwzględnieniem wewnętrznego interfejsu kolejki:
Kolejka zdefiniowana jest w pliku nagłówkowym queue:
#include<queue>
Deklaracja kolejki domyślnie zakłada użycie jako kontenera przechowującego elementy kontenera deque:
namespace std { template<typename _Tp, typename _Sequence = deque<_Tp> > class queue; }
gdzie: _Tp – typ przechowywanych elementów, _Sequence – parametr opcjonalny, mówi jaki kontener jest używany do przechowywania elementów.
Przykład użycia:
std::queue<int> liczby; // przechowuje liczby całkowite, kontener deque // używany w celu przechowywania elementów queue<int, std::list<int> > liczby; // jak powyżej, tyle, że do // przechowywania elementów użyliśmy // kontenera list
Typ | Opis |
---|---|
queue::value_type | Określa rodzaj elementów umieszczonych w kontenerze. Równoważne składowej container::value_type |
queue::size_type | Określa rozmiar umieszczonych elementów. Równoważne składowej container::size_type |
queue::container_type | Określa rodzaj kontenera. |
Metoda | Opis |
---|---|
explicit queue::queue() | Konstruktor tworzący pustą kolejkę. |
explicit queue::queue(const Container& c) | Konstruktor tworzący kolejkę inicjalizowaną elementami umieszczonymi w kontenerze c. Kopiuje wszystkie elementy z tego kontenera. |
bool queue::empty() const | Zwraca true gdy kolejka jest pusta, w przeciwnym wypadku zwraca false. Równoważna zapisowi: queue::size() == 0 ale może działać szybciej. |
size_type queue::size() const | Zwraca liczbę elementów w kolejce. Aby sprawdzić czy kolejka jest pusta, używajmy queue::empty() |
value_type& queue::front() | Metoda zwraca referencję do elementu znajdującego się na początku kolejki. Zanim ją wywołamy należy upewnić się, czy w kolejce znajdują się jakieś elementy (queue::size > 0 ), gdyż w przypadku wywołania ich dla pustej kolejki, zachowanie jest nieokreślone. |
const value_type& queue::front() const | Metoda zwraca stałą referencję do elementu znajdującego się na początku kolejki. Zanim ją wywołamy należy upewnić się, czy w kolejce znajdują się jakieś elementy (queue::size > 0 ), gdyż w przypadku wywołania ich dla pustej kolejki, zachowanie jest nieokreślone. |
value_type& queue::back() | Metoda zwraca referencję do ostatniego elementu znajdującego się w kolejce. Zanim ją wywołamy należy upewnić się, czy w kolejce znajdują się jakieś elementy queue::size > 0 ), gdyż w przypadku wywołania ich dla pustej kolejki, zachowanie jest nieokreślone. |
const value_type& queue::back() const | Metoda zwraca stałą referencję do ostatniego elementu znajdującego się w kolejce. Zanim ją wywołamy należy upewnić się, czy w kolejce znajdują się jakieś elementy queue::size > 0 ), gdyż w przypadku wywołania ich dla pustej kolejki, zachowanie jest nieokreślone. |