priority_queue
-
hallo,
ich möchte eine priority_queue aus der STL initialisieren. Wie funktioniert das?
-
Hallo,
als erstes musst du den Header <queue> inkludieren.
Da priority_queue ein Container-Adapter ist, die Klasse also einen der (STL)-Container (der Random-Access-Iteratoren zur Verfügung stellen muss) nutzt und für diesen lediglich eine neue Schnittstelle bietet, musst du als nächstes entscheiden, welchen Basiscontainer du verwenden möchtest. Defaultmäßig ist das std::vector.Die Objekte die deine priority_queue verwalten soll müssen außerdem vergleichbar (sowie kopierbar) sein. Entweder über den Operator < oder über ein anderes binäres Prädikat.
Allgemein heißt das:
std::priority_queue<DeineKlasse, BasisContainer, Vergleichsprädikat> cont;
Im einfachsten Fall:
std::priority_queue<int> cont; // oder std::priority_queue<std::string> cont;
-
Zu erwähnen noch, dass BasisContainer defaultmäßig std::vector<DeineKlasse> ist und Vergleichspraedikat std::less<DeineKlasse>.