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.
A concurrent_priority_queue osztály egy tároló, amely lehetővé teszi, hogy több szál párhuzamosan hajtsa végre az elemek betöltését és kiemelését. 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.
_Ax
Egy típus, amely a tárolt kiosztó objektumot jelöli, és amely az egyidejű prioritási sor 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 típustdefiníciók
| 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 |
|---|---|
| párhuzamos_prioritási_sor | Túlterhelt. Egyidejű prioritási sort hoz létre. |
Nyilvános módszerek
| 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 sor létrehozásához használt kiosztó másolatát adja vissza. Ez a módszer egyidejűség-biztonságos. |
| feltöltés | Túlterhelt. Egy elemet hozzáad az egyidejű prioritási sorhoz. Ez a módszer párhuzamos végrehajtásra biztonságos. |
| méret | Az egyidejű prioritási üzenetsor elemeinek számát adja vissza. Ez a módszer biztonságos az egyidejűség szempontjából. |
| csere | Felcseréli két egyidejű prioritási sor tartalmát. 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
átlátszó
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 hívjanak metódusokat az egyidejű prioritási soron.
clear nem szabadít fel memóriát.
párhuzamos prioritási sor
Egyidejű prioritási várólistát 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
Az a forrás concurrent_priority_queue objektum, amelyből az elemeket másoljuk vagy áthelyezzük.
Megjegyzések
Minden konstruktor tárol egy kiosztóobjektumot _Al , és inicializálja a prioritási sort.
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 sort ad meg egy kezdeti kapacitással _Init_capacity , és opcionálisan meghatároz egy allokátort.
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 egy prioritási sor _Srcmásolatát határozza meg.
A hatodik és hetedik konstruktor a prioritásos sor _Src áthelyezését írja le.
ü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 sor üres volt a függvény meghívásának pillanatában, false ellenkező esetben.
get_allocator
A párhuzamos prioritási sor felépítéséhez 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 concurrent_priority_queue objektum létrehozásához használt kiosztó másolata.
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.
küldés
Hozzáad egy elemet a párhuzamos prioritási sorhoz. Ez a módszer egyidejű végrehajtásra biztonságos.
void push(const value_type& _Elem);
void push(value_type&& _Elem);
Paraméterek
_Elem
Az egyidejű prioritási sorhoz 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.
cserél
Felcseréli két egyidejű prioritási sor tartalmát. 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éket kivettek, false ellenkező esetben.
Lásd még
egyidejű névtér
párhuzamos tárolók és objektumok