Scalanie dwóch kolejek

0

Mógłby ktoś mi wytłumaczyć dlaczego jeśli kolejka jest pusta to przypisuje do niej bardzo duza liczbę? co to ma na celu?
if (!kolejka2.empty()) {
glowaKolejki2 = kolejka2.front();
} else {
glowaKolejki2 = BARDZO_DUZA_LICZBA;
}

A tutaj wstawiam cały kod :

#include <iostream>
#include <cmath>
#include <iomanip>
#include <queue>

using namespace std;

queue <int> kolejka1;
queue <int> kolejka2;
queue <int> wynikowa;

#define BARDZO_DUZA_LICZBA 1000000

int glowaKolejki1 = BARDZO_DUZA_LICZBA;
int glowaKolejki2 = BARDZO_DUZA_LICZBA;

int main()
{
kolejka1.push(2);
kolejka1.push(4);
kolejka1.push(5);
kolejka1.push(6);
kolejka1.push(8);
kolejka1.push(9);
kolejka1.push(10);

kolejka2.push(3);
kolejka2.push(7);
kolejka2.push(14);
kolejka2.push(15);

if (!kolejka1.empty()) {
    glowaKolejki1 = kolejka1.front();
}
if (!kolejka2.empty()) {
    glowaKolejki2 = kolejka2.front();
}

do
{
    if(glowaKolejki1 <= glowaKolejki2) {
        wynikowa.push(glowaKolejki1);
        kolejka1.pop();
        if (!kolejka1.empty()) {
            glowaKolejki1 = kolejka1.front();
        } else {
            glowaKolejki1 = BARDZO_DUZA_LICZBA;
        }
    } else {
        wynikowa.push(glowaKolejki2);
        kolejka2.pop();
        if (!kolejka2.empty()) {
            glowaKolejki2 = kolejka2.front();
        } else {
            glowaKolejki2 = BARDZO_DUZA_LICZBA;
        }
    }
} while(!(kolejka1.empty() && kolejka2.empty()));

while(!wynikowa.empty())
{
    cout << wynikowa.front() << endl;
    wynikowa.pop();
}

return 0;

}

0

To nieudolny sposób niedopuszczenia aby coś pobierało się z pustej kolejki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1