Obiecałem dzisiaj klasie Ia, że napiszę trochę o kolejce priorytetowej. Otóż mówiliśmy na lekcji, że jest ona dziwnym tworem, nazwaliśmy go WORKIEM, do którego można wrzucać liczby i wyjmować w kolejności zgodnej z ich priorytetem. W STL-u, tj. po wpisaniu na samym początku tego #include<queue>możemy korzystać z kolejki w następujący sposób priority_queue<int> Q; // deklaracja kolejki priorytetowej Q Q.push( 10 ); // wrzuca do kolejki liczbę 10 x = Q.top(); // podstawia pod x wartość liczby w kolejce Q z największym priorytetem Q.pop(); // usuwa z kolejki Q liczbę z największym priorytetemDomyślnie największy priorytet mają liczby największe, tzn. jeśli wykonamy Q.push(20); Q.push(30); Q.push(4); x = Q.top();to wartość zmiennej x będzie wynosiła 30. Jeśli chcemy, aby największy priorytet miały liczby o najmniejszej wartości, to zgodnie z tym, co pisałem już kiedyś na moim blogu [tutaj], musimy zadeklarować kolejkę w następujący sposób: |