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>.


Anmelden zum Antworten