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


concurrent_priority_queue osztály

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