Kolejka
Lekcja 11 z 23 w kursie C++ – Standardowa biblioteka szablonów w Coddy.
Queue w C++ to struktura danych zapewniająca funkcjonalność kolejki, a dokładniej — działa zgodnie z zasadą FIFO (First in-First out). Oznacza to, że elementy dodane do kolejki jako pierwsze opuszczą ją lub zostaną z niej usunięte jako pierwsze.

queue<dataType> queueName;Aby utworzyć kolejkę w C++, musimy dołączyć plik nagłówkowy queue na początku pliku C++ za pomocą #include <queue>.
Teraz możemy zadeklarować kolejkę w naszym programie w następujący sposób:
queue<int> queueOfNums;Musimy się nauczyć, jak dodawać nowe elementy do kolejki. Robimy to za pomocą metody push(). Metoda push() wstawia nowy element na końcu kolejki.
queueOfNums.push(1);
queueOfNums.push(2);
...Następnie chcemy wyświetlić elementy kolejki. Ponieważ jest to kolejka, możemy wyświetlić pierwszy dodany do niej element. W tym celu używamy metody front(). Zwraca ona pierwszy element kolejki.
cout << queueOfNums.front();Output:
1W przeciwieństwie do stosu, z którego możemy wypisać tylko element znajdujący się na szczycie, czyli ostatni element stosu, z kolejki możemy wypisać również jej ostatnią wartość. Robimy to za pomocą metody back(), która zwraca ostatni element kolejki.
queueOfNums.push(3);
cout << queueOfNums.back();Output:
3Musimy też nauczyć się, jak usuwać elementy z kolejki. Niestety, możemy usunąć tylko element znajdujący się na początku, który został dodany jako pierwszy, ponieważ to nadal kolejka, więc nie możemy najpierw usunąć ostatniego elementu. Do tego używamy stosu i zasady LIFO (Last in-First out).
Usuwamy więc element z początku za pomocą metody pop().
queueOfNums.pop();
cout << queueOfNums.front() << endl;
queueOfNums.pop();
cout << queueOfNums.front();Output:
1
2Metody kolejki
| Metoda | Funkcjonalność |
size() | Zwraca liczbę elementów w kolejce |
empty() | Zwraca true, jeśli kolejka jest pusta, a w przeciwnym razie false |
swap() | Wymienia zawartość jednej kolejki na zawartość innej |
Wyzwanie
ŁatwyPodano 10 liczb z wejścia. Użyj kolejki i wypisz liczby, usuwając je po jednej i wypisując tylko parzyste.
Input
1 2 3 4 5 6 7 8 9 10Output
2 4 6 8 10Spróbuj swoich sił
#include <queue>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}Wszystkie lekcje w sekcji C++ – Standardowa biblioteka szablonów
Poćwicz samodzielnie: Kompilator C++ online