W języku C++ istnieją szablony do obsługi różnego rodzaju kolejek. Poniższy przykład pokazuje jak używać kolejki FIFO (first in, first out).
Uwaga! Stare kompilatory (standard C++ 98) zamiast metody emplace() używają push(). W nowych można używać obu metod, różnica w działaniu jest istotna z punktu widzenia zaawansowanych użytkowników, których ten przykład raczej nie zainteresuje.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <iostream> #include <queue> using namespace std; void memoryInfo(queue <double> queueMem) { cout << "Rozmiar kolejki FIFO: " << queueMem.size() << ", w bajtach: " << queueMem.size() * sizeof(double) << endl; } int main() { queue <double> queueFifo; memoryInfo(queueFifo); //wypisz informacje o zajętej pamięci queueFifo.emplace(3.14); //dodajemy trzy liczby queueFifo.emplace(6.1); queueFifo.emplace(-19.1); memoryInfo(queueFifo); while (!queueFifo.empty()) { double first = queueFifo.front(); //pobieramy pierwszy w kolejce cout << "Zdejmuje element: " << first << endl; queueFifo.pop(); //wywalamy pierwszy z kolejki FIFO (zgodnie z zasadą first in first out) memoryInfo(queueFifo); //wypisz informacje o rozmiarze kolejki C++ } return 0; } |