Freigeben über


priority_queue Class

Eine Vorlagencontainer-Adapterklasse, die eine Einschränkung der Funktionalität Zugriff auf den obersten Element eines zugrunde liegenden Containertyps restriktiv bereitstellt, der immer oder vom höchsten das größte ist.Neue Elemente können zum priority_queue hinzugefügt und das oberste Element des priority_queue kann überprüft oder entfernt werden.

template <
   class Type, 
   class Container=vector<Type>,
   class Compare=less<typename Container::value_type> 
>
class priority_queue

Parameter

  • Text [Type]
    Der im priority_queue gespeichert werden, Elementdatentyp.

  • Container
    Der Typ des zugrunde liegenden Containers verwendet, um das priority_queue zu implementieren.

  • Compare
    Der Typ, der ein Funktionsobjekt bereitstellt, das zwei Elementwerte als Sortierschlüssel vergleichen kann, um deren relative Position im priority_queue zu bestimmen.Dieses Argument ist optional und der Container**::value_typeless***<typename> des* binären Prädikats ist der Standardwert.

Hinweise

Die Elemente der Klasse Typ vereinbart im ersten Vorlagenparameter eines Warteschlangenobjekts sind mit value_type synonym und müssen den Typ des Elements in der zugrunde liegenden Containerklasse Container übereinstimmen vereinbart vom zweiten Vorlagenparameter.Typ zugewiesen werden muss, damit es möglich, Objekte dieses Typs zu kopieren ist und Werte in Variablen dieses Typs zuzuweisen.

Das priority_queue sortiert die Sequenz, die es steuert, indem ein gespeichertes Funktionsobjekt der Klasse Traits aufruft.Im Allgemeinen müssen die Elemente lediglich weniger als vergleichbar, diese Reihenfolge eingerichtet sein:, damit alle zwei Elemente angegeben, es jedem bestimmt werden kann, dass sie äquivalent sind (insofern, dass kein kleiner ist als die andere ist), oder, dass von kleiner als das andere ist.Dies ergibt eine Reihenfolge zwischen den antivalenten Elementen.Auf einem mehr technischen Hinweis ist die Vergleichsfunktion ein binäres Prädikat, das eine strenge schwache Sortierung im mathematischen StandardSinn verursacht.

Passende zugrunde liegende Containerklassen für priority_queue enthalten Doppelschlange Klasse und standardmäßige Vektor Klasse oder anderen Sequenzcontainer, der die Vorgänge von front, push_back und pop_back und Iterator mit wahlfreier Zugriff unterstützt.Die zugrunde liegende Containerklasse wird innerhalb des Containeradapters gekapselt, die nur den eingeschränkten Satz der Sequenzcontainermemberfunktionen als öffentliche Schnittstelle verfügbar macht.

Das Hinzufügen von Elementen zu und das Entfernen von Elementen aus priority_queue beide über logarithmische Komplexität.Das Zugreifen auf Elemente in priority_queue hat konstante Komplexität.

Es gibt drei Typen Containeradapter, die von STL definiert werden: Stapel, Warteschlangen und priority_queue.Jedes schränkt die Funktionalität einige zugrunde liegende Containerklasse ein, um eine genau gesteuerte Schnittstelle zu einer Standarddatenstruktur bereitzustellen.

  • Stapelklasse unterstützt eine Datenstruktur Last In, First Out (Last-In-First-Out).Eine gute zu beachten Entsprechung würde ein Stapel Platten sein.Elemente (Platten) werden nur von Anfang des Stapels eingefügt werden, überprüft oder entfernt werden, der das letzte Element am Ende des Basiscontainers ist.Die Einschränkung den Zugriff nur auf das oberste Element ist der Grund für die Verwendung der Stapelklasse.

  • Warteschlangenklasse unterstützt eine Datenstruktur First In, First Out (First-In-First-Out).Eine gute zu beachten Entsprechung würde die Personen sein, die für einen Kassierer ausrichten.Elemente (Personen) werden auf die Rückseite der Zeile und entfernt werden von am Beginn der Zeile hinzugefügt werden.werden der Vordergrund und die Rückseite einer Zeile überprüft werden.Die Einschränkung den Zugriff nur auf die Vordergrund- und back-Elemente ist auf diese Weise der Grund für die Verwendung der Warteschlangenklasse.

  • Die priority_queue-Klasse sortiert ihre Elemente, sodass das größte Element immer oben Position befindet.Es unterstützt Einfügen eines Elements und der Überprüfung und des Entfernens des obersten Elements.Eine gute zu beachten Entsprechung würde die Personen sein, die ausrichten, wo sie von Alter, Höhe oder ein anderes Kriterium angeordnet werden.

4ef4dae9.collapse_all(de-de,VS.110).gifKonstruktoren

priority_queue

Erstellt priority_queue, das leer ist oder, das eine Kopie eines Bereichs eines Basiscontainerobjekts oder anderen priority_queue ist.

4ef4dae9.collapse_all(de-de,VS.110).gifTypedefs

container_type

Ein Typ, der durch den stellt priority_queue angepasst werden Basiscontainer.

size_type

Ein vorzeichenlose Typ ganzen Zahl, der die Anzahl der Elemente in priority_queue darstellen kann.

value_type

Ein Typ, der den Typ des Objekts gespeichert als Element in priority_queue darstellt.

4ef4dae9.collapse_all(de-de,VS.110).gifMemberfunktionen

empty

Prüft, ob priority_queue leer ist.

pop

Entfernt das größte Element priority_queue von der obersten Position.

push

Fügt ein Element der Prioritätswarteschlange anhand der Priorität des Elements vom operator< hinzu.

size

Gibt die Anzahl der Elemente in priority_queue zurück.

top

Gibt einen es dem größten Element oben im priority_queue zurück.

Anforderungen

Header: <queue>

Namespace: std

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

Standardvorlagenbibliothek