Die
Prioritätswarteschlange
ist ein
Container-Adapter
, der einen konstanten Zugriff auf das größte (standardmäßig) Element bietet, auf Kosten von logarithmischer Einfügung und Entnahme.
Ein benutzerdefiniertes
Compare
kann bereitgestellt werden, um die Sortierreihenfolge zu ändern, z.B. würde die Verwendung von
std::
greater
<
T
>
dazu führen, dass das kleinste Element als
top()
erscheint.
Die Arbeit mit einer
priority_queue
ähnelt der Verwaltung eines
Heaps
in einem Container mit wahlfreiem Zugriff, mit dem Vorteil, dass der Heap nicht versehentlich ungültig gemacht werden kann.
Alle Memberfunktionen von
std::priority_queue
sind
constexpr
: Es ist möglich,
std::priority_queue
-Objekte in der Auswertung eines konstanten Ausdrucks zu erstellen und zu verwenden.
Allerdings können
std::priority_queue
-Objekte im Allgemeinen nicht
constexpr
sein, da jeder dynamisch allokierte Speicher in derselben Auswertung des konstanten Ausdrucks freigegeben werden muss.
Der Typ der gespeicherten Elemente. Das Programm ist fehlerhaft, wenn
T
nicht derselbe Typ wie
Container::value_type
ist.
Container
-
Der Typ des zugrundeliegenden Containers, der zur Speicherung der Elemente verwendet wird. Der Container muss die Anforderungen von
SequenceContainer
erfüllen, und seine Iteratoren müssen die Anforderungen von
LegacyRandomAccessIterator
erfüllen. Zusätzlich muss er die folgenden Funktionen mit den
üblichen Semantiken
bereitstellen:
Ein
Compare
-Typ, der eine strikte schwache Ordnung bereitstellt.
Beachten Sie, dass der
Compare
-Parameter so definiert ist, dass er
true
zurückgibt, wenn sein erstes Argument in einer schwachen Ordnung
vor
seinem zweiten Argument kommt. Da die Prioritätswarteschlange jedoch die größten Elemente zuerst ausgibt, werden die Elemente, die "zuerst kommen", tatsächlich zuletzt ausgegeben. Das bedeutet, dass der Anfang der Warteschlange das "letzte" Element gemäß der durch
Compare
auferlegten schwachen Ordnung enthält.
Mitgliedstypen
Mitglied
Definition
container_type
Container
value_compare
Compare
value_type
Container::value_type
size_type
Container::size_type
reference
Container::reference
const_reference
Container::const_reference
Mitgliedsobjekte
Mitglied
Beschreibung
Container c
der zugrunde liegende Container (geschütztes Mitgliedsobjekt)
Compare comp
das Vergleichsfunktionsobjekt (geschütztes Mitgliedsobjekt)