Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az concurrent_priority_queue osztály egy tároló, amely lehetővé teszi több szál egyidejű leküldését és előugró elemeit. Az elemek prioritási sorrendben jelennek meg, ahol a prioritást egy sablonargumentumként megadott funktor határozza meg.
Szemantika
template <typename T,
typename _Compare = std::less<T>,
typename _Ax = std::allocator<T>>
class concurrent_priority_queue;
Paraméterek
T
A prioritási üzenetsorban tárolni kívánt elemek adattípusa.
_Összehasonlít
Annak a függvényobjektumnak a típusa, amely rendezési kulcsként összehasonlíthat két elemértéket a relatív sorrendjük meghatározásához a prioritási üzenetsorban. Ez az argumentum nem kötelező, és a bináris predikátum less<T> az alapértelmezett érték.
_Fejsze
Az a típus, amely a tárolt kiosztó objektumot jelöli, amely az egyidejű prioritási üzenetsor memóriafoglalásának és felszabadításának részleteit foglalja magában. Ez az argumentum nem kötelező, és az alapértelmezett érték allocator<T>.
Tagok
Nyilvános typedefs
| Név | Leírás |
|---|---|
allocator_type |
Olyan típus, amely az egyidejű prioritási üzenetsor kiosztóosztályát jelöli. |
const_reference |
Olyan típus, amely az egyidejű prioritási várólistában tárolt típus egy elemére mutató konstanshivatkozást jelöl. |
reference |
Olyan típus, amely az egyidejű prioritási üzenetsorban tárolt típus egy elemére mutató hivatkozást jelöl. |
size_type |
Olyan típus, amely megszámolja az egyidejű prioritási üzenetsor elemeinek számát. |
value_type |
Olyan típus, amely az egyidejű prioritási üzenetsorban tárolt adattípust jelöli. |
Nyilvános konstruktorok
| Név | Leírás |
|---|---|
| concurrent_priority_queue | Túlterhelt. Egyidejű prioritási üzenetsort hoz létre. |
Nyilvános metódusok
| Név | Leírás |
|---|---|
| töröl | Törli az egyidejű prioritás összes elemét. Ez a módszer nem egyidejűségbiztos. |
| üres | Ellenőrzi, hogy az egyidejű prioritási üzenetsor üres-e a metódus meghívásakor. Ez a módszer egyidejűség-biztonságos. |
| get_allocator | Az egyidejű prioritási üzenetsor létrehozásához használt kiosztó másolatát adja vissza. Ez a módszer egyidejűség-biztonságos. |
| leküldéses | Túlterhelt. Elemet ad hozzá az egyidejű prioritási üzenetsorhoz. Ez a módszer egyidejűség-biztonságos. |
| méret | Az egyidejű prioritási üzenetsor elemeinek számát adja vissza. Ez a módszer egyidejűség-biztonságos. |
| felcserélési | Két egyidejű prioritási üzenetsor tartalmának felcserélése. Ez a módszer nem egyidejűségbiztos. |
| try_pop | Eltávolítja és visszaadja a legmagasabb prioritású elemet az üzenetsorból, ha az üzenetsor nem üres. Ez a módszer egyidejűség-biztonságos. |
Nyilvános operátorok
| Név | Leírás |
|---|---|
| operátor= | Túlterhelt. Egy másik concurrent_priority_queue objektum tartalmát rendeli hozzá ehhez. Ez a módszer nem egyidejűségbiztos. |
Megjegyzések
A concurrent_priority_queue osztályról további információt Párhuzamos tárolók és objektumokcímű témakörben talál.
Öröklési hierarchia
concurrent_priority_queue
Követelmények
Fejléc: concurrent_priority_queue.h
névtér: egyidejűség
világos
Törli az egyidejű prioritás összes elemét. Ez a módszer nem egyidejűségbiztos.
void clear();
Megjegyzések
clear nem egyidejűségbiztos. A metódus meghívásakor gondoskodnia kell arról, hogy más szálak ne invokáltanak metódusokat az egyidejű prioritási üzenetsoron.
clear nem szabadít fel memóriát.
concurrent_priority_queue
Egyidejű prioritási üzenetsort hoz létre.
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);
Paraméterek
_InputIterator
A bemeneti iterátor típusa.
_Al
Az objektumhoz használni kívánt kiosztóosztály.
_Init_capacity
Az objektum kezdeti kapacitása concurrent_priority_queue .
_Kezdődik
A másolandó elemek tartományának első elemének pozíciója.
_Vég
Az első elem helye a másolandó elemek tartományán túl.
_Src
A forrás concurrent_priority_queue objektumot az elemek másolásához vagy áthelyezéséhez.
Megjegyzések
Minden konstruktor tárol egy kiosztóobjektumot _Al , és inicializálja a prioritási üzenetsort.
Az első konstruktor egy üres kezdeti prioritási várólistát ad meg, és opcionálisan egy kiosztót határoz meg.
A második konstruktor egy prioritási üzenetsort ad meg egy kezdeti kapacitással _Init_capacity , és opcionálisan meghatároz egy kiosztót.
A harmadik konstruktor megadja az iterátortartomány [ _Begin, ) által megadott értékeket, _Endés opcionálisan egy allokátort határoz meg.
A negyedik és ötödik konstruktor megadja a prioritási üzenetsor _Srcmásolatát.
A hatodik és hetedik konstruktor a prioritási üzenetsor _Srcáthelyezését határozza meg.
üres
Ellenőrzi, hogy az egyidejű prioritási üzenetsor üres-e a metódus meghívásakor. Ez a módszer egyidejűség-biztonságos.
bool empty() const;
Visszaadott érték
true ha a prioritási üzenetsor üres volt a függvény meghívásának pillanatában, false ellenkező esetben.
get_allocator
Az egyidejű prioritási üzenetsor létrehozásához használt kiosztó másolatát adja vissza. Ez a módszer egyidejűség-biztonságos.
allocator_type get_allocator() const;
Visszaadott érték
Az objektum létrehozásához használt kiosztó másolata concurrent_priority_queue .
operátor=
Egy másik concurrent_priority_queue objektum tartalmát rendeli hozzá ehhez. Ez a módszer nem egyidejűségbiztos.
concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);
concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);
Paraméterek
_Src
A forrás concurrent_priority_queue objektum.
Visszaadott érték
Hivatkozás erre a concurrent_priority_queue objektumra.
tol
Elemet ad hozzá az egyidejű prioritási üzenetsorhoz. Ez a módszer egyidejűség-biztonságos.
void push(const value_type& _Elem);
void push(value_type&& _Elem);
Paraméterek
_Elem
Az egyidejű prioritási üzenetsorhoz hozzáadni kívánt elem.
méret
Az egyidejű prioritási üzenetsor elemeinek számát adja vissza. Ez a módszer egyidejűség-biztonságos.
size_type size() const;
Visszaadott érték
Az objektum elemeinek concurrent_priority_queue száma.
Megjegyzések
A visszaadott méret garantáltan tartalmazza a függvény pushhívásai által hozzáadott összes elemet. Előfordulhat azonban, hogy nem tükrözi a függőben lévő egyidejű műveletek eredményeit.
elcserél
Két egyidejű prioritási üzenetsor tartalmának felcserélése. Ez a módszer nem egyidejűségbiztos.
void swap(concurrent_priority_queue& _Queue);
Paraméterek
_Sor
Az concurrent_priority_queue objektum, amellyel felcserélheti a tartalmat.
try_pop
Eltávolítja és visszaadja a legmagasabb prioritású elemet az üzenetsorból, ha az üzenetsor nem üres. Ez a módszer egyidejűség-biztonságos.
bool try_pop(reference _Elem);
Paraméterek
_Elem
Hivatkozás egy olyan változóra, amely a legmagasabb prioritású elemgel lesz feltöltve, ha az üzenetsor nem üres.
Visszaadott érték
true ha egy érték felpattant, false ellenkező esetben.
Lásd még
egyidejű névtér
párhuzamos tárolók és objektumok