Megosztás a következőn keresztül:


concurrent_priority_queue osztály

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