Priority_queue i stl

0

To znowu ja z pytaniem odnosnie stla :)
Nie odsylacie mnie do googli, referencji etc. bo juz przeszukalem...
Wiec tak:
Z tego co rozumiem to kolejka priorytetowa powinna "ustawiac" elementy w kolejce wg. priorytetu - im wiekszy tym blizej poczatku. Tylko teraz jak ustawic ten priorytet??
Kod:

priority_queue<int> kolejka;
kolejka.push(10); // i gdzie jest ten priorytet?

To tyle... Czyli jak dla elementu ustawic ten priorytet??

0

Nie powiem ci na 100% ale priorytet to jest wartość tego co wstawiasz czyli jak wstawisz np 5 8 1 to jak wyświetlisz od pierwszego elementu do ostatniego to otrzymasz 8 5 1 bo 8 jest największe więc ma największy priorytet. Różnią się one od innych kontenerów które <ort>Od razu</ort> sortują tym że najpierw jest największy element a nie najmiejszy (poza różnicami ogólnymi np. między kolejkami a mapami). Jak mówiłem nie jestem w 100% pewny.

0

Tak wiem mniej wiecej o to mi chodzilo.
Ale teraz jak mam ta kolejke priorytetowa intow to rozumiem ze "priorytetuje" wg. wartosci tego inta. Ale jak mam jakis rozbudowany typ:

struct abc{
int x, y, z;
int prior;
};

priority_queue<abc> kolejka;
to jak w tym wypadku powiadomic kolejke co ma byc priorytetem w takim type??

0

Poczytaj o obiektach funkcyjnych (google) a jak nie znajdziesz to może coś napisze jak będe miał czas bo teraz nie moge.

Hmmmm próbowałem coś wykminić ale nie miałem z kolejkami priorytetowymi doczynienia i w nich robi się to chyba jakoś inaczej bo coś nie działało. Wyczytałem tylko że potrzebny jest obiekt funkcyjny w charakterze predykatu binarnego. Jak coś wymyśle a dalej nie będzie tu odpowiedzi to dam znać.

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