concurrent_priority_queue-Klasse
Die concurrent_priority_queue
-Klasse ist ein Container, der es mehreren Threads gleichzeitig ermöglicht, für Elemente die Vorgänge "push" und "pop" auszuführen. Elemente werden in Reihenfolge ihrer Priorität per pop ausgelesen, wenn die Priorität mit einem als Vorlagenargument angegebenen Funktionselement bestimmt wird.
Syntax
template <typename T,
typename _Compare= std::less<T>,
typename _Ax = std::allocator<T>
>,
typename _Ax = std::allocator<T>> class concurrent_priority_queue;
Parameter
T
Der Datentyp der Elemente, die in der Prioritätswarteschlange gespeichert werden sollen.
_Vergleichen
Der Typ des Funktionsobjekts, das zwei Elementwerte als Sortierschlüssel vergleichen kann, um die relative Reihenfolge in der Prioritätswarteschlange zu bestimmen. Dieses Argument ist optional, und das binäre Prädikat less<T>
ist der Standardwert.
_Axt
Der Typ, der das gespeicherte Allocatorobjekt darstellt, das Details zur Zuordnung und Zuordnung des Speichers für die gleichzeitige Prioritätswarteschlange kapselt. Dieses Argument ist optional, und der Standardwert ist allocator<T>
.
Member
Öffentliche Typedefs
Name | Beschreibung |
---|---|
allocator_type |
Ein Typ, der die Allocator-Klasse für die gleichzeitige Prioritätswarteschlange darstellt. |
const_reference |
Ein Typ, der einen Konstverweis auf ein Element des Typs darstellt, der in einer gleichzeitigen Prioritätswarteschlange gespeichert ist. |
reference |
Ein Typ, der einen Verweis auf ein Element des Typs darstellt, der in einer gleichzeitigen Prioritätswarteschlange gespeichert ist. |
size_type |
Ein Typ, der die Anzahl der Elemente in einer gleichzeitigen Prioritätswarteschlange zählt. |
value_type |
Ein Typ, der den Datentyp darstellt, der in einer gleichzeitigen Prioritätswarteschlange gespeichert ist. |
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
concurrent_priority_queue | Überladen. Erstellt eine Warteschlange mit gleichzeitiger Priorität. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
clear | Löscht alle Elemente in der gleichzeitigen Priorität. Diese Methode ist nicht nebenläufigkeitssicher. |
empty | Testet, ob die gleichzeitige Prioritätswarteschlange zum Zeitpunkt des Aufrufs dieser Methode leer ist. Diese Methode ist nebenläufigkeitssicher. |
get_allocator | Gibt eine Kopie des Allocators zurück, der zum Erstellen der gleichzeitigen Prioritätswarteschlange verwendet wird. Diese Methode ist nebenläufigkeitssicher. |
push | Überladen. Fügt der Warteschlange für gleichzeitige Priorität ein Element hinzu. Diese Methode ist nebenläufigkeitssicher. |
size | Gibt die Anzahl der Elemente in der gleichzeitigen Prioritätswarteschlange zurück. Diese Methode ist nebenläufigkeitssicher. |
swap | Tauscht den Inhalt von zwei gleichzeitigen Prioritätswarteschlangen aus. Diese Methode ist nicht nebenläufigkeitssicher. |
try_pop | Entfernt und gibt das Element mit der höchsten Priorität aus der Warteschlange zurück, wenn die Warteschlange nicht leer ist. Diese Methode ist nebenläufigkeitssicher. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
operator= | Überladen. Weist den Inhalt eines anderen concurrent_priority_queue -Objekts diesem Objekt zu. Diese Methode ist nicht nebenläufigkeitssicher. |
Hinweise
Ausführliche Informationen zur concurrent_priority_queue
Klasse finden Sie unter Parallel Containers and Objects.
Vererbungshierarchie
concurrent_priority_queue
Anforderungen
Kopfzeile: concurrent_priority_queue.h
Namespace: Parallelität
clear
Löscht alle Elemente in der gleichzeitigen Priorität. Diese Methode ist nicht nebenläufigkeitssicher.
void clear();
Hinweise
clear
ist nicht gleichzeitig sicher. Sie müssen sicherstellen, dass keine anderen Threads Methoden für die gleichzeitige Prioritätswarteschlange aufrufen, wenn Sie diese Methode aufrufen. clear
gibt keinen Freien Arbeitsspeicher frei.
concurrent_priority_queue
Erstellt eine Warteschlange mit gleichzeitiger Priorität.
explicit concurrent_priority_queue(
const allocator_type& _Al = allocator_type());
explicit concurrent_priority_queue(
size_type _Init_capacity,
const allocator_type& _Al = allocator_type());
template<typename _InputIterator>
concurrent_priority_queue(_InputIterator _Begin,
_InputIterator _End,
const allocator_type& _Al = allocator_type());
concurrent_priority_queue(
const concurrent_priority_queue& _Src);
concurrent_priority_queue(
const concurrent_priority_queue& _Src,
const allocator_type& _Al);
concurrent_priority_queue(
concurrent_priority_queue&& _Src);
concurrent_priority_queue(
concurrent_priority_queue&& _Src,
const allocator_type& _Al);
Parameter
_InputIterator
Der Typ des Eingabeiterators.
_Al
Die mit diesem Objekt zu verwendende Zuweisungsklasse.
_Init_capacity
Die Anfangskapazität des concurrent_priority_queue
-Objekts.
_Anfangen
Die Position des ersten Elements in dem zu kopierenden Elementbereich.
_Ende
Die Position des ersten Elements nach dem zu kopierenden Elementbereich.
_Src
Das concurrent_priority_queue
-Quellobjekt, aus dem Elemente kopiert oder verschoben werden sollen.
Hinweise
Alle Konstruktoren speichern ein Allocator-Objekt _Al
und initialisieren die Prioritätswarteschlange.
Der erste Konstruktor gibt eine leere Anfangsprioritätswarteschlange an und gibt optional einen Zuweisungsgeber an.
Der zweite Konstruktor gibt eine Prioritätswarteschlange mit einer anfänglichen Kapazität _Init_capacity
an und gibt optional einen Zuweisungsgeber an.
Der dritte Konstruktor gibt Werte an, die vom Iteratorbereich [ _Begin
, _End
) angegeben werden und optional einen Zuweisungsgeber angibt.
Die vierten und fünften Konstruktoren geben eine Kopie der Prioritätswarteschlange _Src
an.
Die sechsten und siebten Konstruktoren geben eine Verschiebung der Prioritätswarteschlange _Src
an.
empty
Testet, ob die gleichzeitige Prioritätswarteschlange zum Zeitpunkt des Aufrufs dieser Methode leer ist. Diese Methode ist nebenläufigkeitssicher.
bool empty() const;
Rückgabewert
true
wenn die Prioritätswarteschlange zum Zeitpunkt des Aufrufs der Funktion leer war, false
andernfalls.
get_allocator
Gibt eine Kopie des Allocators zurück, der zum Erstellen der gleichzeitigen Prioritätswarteschlange verwendet wird. Diese Methode ist nebenläufigkeitssicher.
allocator_type get_allocator() const;
Rückgabewert
Eine Kopie des Allocators, der zum Konstruieren des concurrent_priority_queue
Objekts verwendet wird.
operator =
Weist den Inhalt eines anderen concurrent_priority_queue
-Objekts diesem Objekt zu. Diese Methode ist nicht nebenläufigkeitssicher.
concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);
concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);
Parameter
_Src
Das concurrent_priority_queue
-Quellobjekt.
Rückgabewert
Ein Verweis auf das concurrent_priority_queue
-Objekt.
push
Fügt der Warteschlange für gleichzeitige Priorität ein Element hinzu. Diese Methode ist nebenläufigkeitssicher.
void push(const value_type& _Elem);
void push(value_type&& _Elem);
Parameter
_Elem
Das Element, das der gleichzeitigen Prioritätswarteschlange hinzugefügt werden soll.
size
Gibt die Anzahl der Elemente in der gleichzeitigen Prioritätswarteschlange zurück. Diese Methode ist nebenläufigkeitssicher.
size_type size() const;
Rückgabewert
Die Anzahl der Elemente in diesem concurrent_priority_queue
Objekt.
Hinweise
Die zurückgegebene Größe wird garantiert alle Elemente enthalten, die durch Aufrufe der Funktion push
hinzugefügt werden. Es kann jedoch nicht die Ergebnisse von ausstehenden gleichzeitigen Vorgängen widerspiegeln.
swap
Tauscht den Inhalt von zwei gleichzeitigen Prioritätswarteschlangen aus. Diese Methode ist nicht nebenläufigkeitssicher.
void swap(concurrent_priority_queue& _Queue);
Parameter
_Schlange
Das concurrent_priority_queue
Objekt, mit dem Inhalte ausgetauscht werden sollen.
try_pop
Entfernt und gibt das Element mit der höchsten Priorität aus der Warteschlange zurück, wenn die Warteschlange nicht leer ist. Diese Methode ist nebenläufigkeitssicher.
bool try_pop(reference _Elem);
Parameter
_Elem
Ein Verweis auf eine Variable, die mit dem Element mit der höchsten Priorität aufgefüllt wird, wenn die Warteschlange nicht leer ist.
Rückgabewert
true
wenn ein Wert angezeigt wurde, false
andernfalls.