concurrent_priority_queue-klass

Klassen concurrent_priority_queue är en container som gör att flera trådar samtidigt kan push- och pop-objekt. Objekt visas i prioritetsordning där prioritet bestäms av en functor som anges som ett mallargument.

Syntax

template <typename T,
    typename _Compare = std::less<T>,
    typename _Ax = std::allocator<T>>
class concurrent_priority_queue;

Parameterar

T
Datatypen för de element som ska lagras i prioritetskön.

_Jämföra
Typen av funktionsobjekt som kan jämföra två elementvärden som sorteringsnycklar för att fastställa deras relativa ordning i prioritetskön. Det här argumentet är valfritt och det binära predikatet less<T> är standardvärdet.

_Yxa
Den typ som representerar det lagrade allokeringsobjektet som kapslar in information om allokering och frigöring av minne för den samtidiga prioritetskön. Det här argumentet är valfritt och standardvärdet är allocator<T>.

Medlemmar

Offentliga typedefs

Namn Beskrivning
allocator_type En typ som representerar allokeringsklassen för den samtidiga prioritetskön.
const_reference En typ som representerar en const-referens till ett element av typen som lagras i en samtidig prioritetskö.
reference En typ som representerar en referens till ett element av den typ som lagras i en samtidig prioritetskö.
size_type En typ som räknar antalet element i en samtidig prioritetskö.
value_type En typ som representerar datatypen som lagras i en samtidig prioritetskö.

Offentliga konstruktorer

Namn Beskrivning
concurrent_priority_queue Överbelastad. Skapar en samtidig prioritetskö.

Offentliga metoder

Namn Beskrivning
klar Raderar alla element i den samtidiga prioriteten. Den här metoden är inte samtidighetssäker.
tom Testar om den samtidiga prioritetskön är tom när den här metoden anropas. Den här metoden är samtidighetssäker.
get_allocator Returnerar en kopia av allokeraren som används för att konstruera den samtidiga prioritetskön. Den här metoden är samtidighetssäker.
push- Överbelastad. Lägger till ett element i den samtidiga prioritetskön. Den här metoden är samtidighetssäker.
storlek Returnerar antalet element i den samtidiga prioritetskön. Den här metoden är samtidighetssäker.
växla Växlar innehållet i två samtidiga prioritetsköer. Den här metoden är inte samtidighetssäker.
try_pop Tar bort och returnerar det högsta prioritetselementet från kön om kön inte är tom. Den här metoden är samtidighetssäker.

Offentliga operatörer

Namn Beskrivning
operator= Överbelastad. Tilldelar innehållet i ett annat concurrent_priority_queue objekt till det här objektet. Den här metoden är inte samtidighetssäker.

Anmärkningar

Detaljerad information om klassen concurrent_priority_queue finns i Parallella containrar och objekt.

Arvshierarki

concurrent_priority_queue

Kravspecifikation

Rubrik: concurrent_priority_queue.h

namnområde: samtidighet

klar

Raderar alla element i den samtidiga prioriteten. Den här metoden är inte samtidighetssäker.

void clear();

Anmärkningar

clear är inte samtidighetssäkert. Du måste se till att inga andra trådar anropar metoder i den samtidiga prioritetskön när du anropar den här metoden. clear frigör inte minne.

concurrent_priority_queue

Skapar en samtidig prioritetskö.

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);

Parameterar

_InputIterator
Typ av iterator för indata.

_Al
Allokeringsklassen som ska användas med det här objektet.

_Init_capacity
Objektets concurrent_priority_queue ursprungliga kapacitet.

_Börja
Positionen för det första elementet i området med element som ska kopieras.

_Ände
Positionen för det första elementet utöver det område av element som ska kopieras.

_Src
Källan concurrent_priority_queue objekt att kopiera eller flytta element från.

Anmärkningar

Alla konstruktorer lagrar ett allokeringsobjekt _Al och initierar prioritetskön.

Den första konstruktorn anger en tom inledande prioritetskö och anger eventuellt en allokerare.

Den andra konstruktorn anger en prioritetskö med en initial kapacitet _Init_capacity och anger eventuellt en allokerare.

Den tredje konstruktorn anger värden som tillhandahålls av iteratorintervallet [ _Begin, _End) och anger eventuellt en allokerare.

Den fjärde och femte konstruktorn anger en kopia av prioritetskö _Src.

De sjätte och sjunde konstruktorerna anger en flytt av prioritetskö _Src.

tom

Testar om den samtidiga prioritetskön är tom när den här metoden anropas. Den här metoden är samtidighetssäker.

bool empty() const;

Returvärde

true om prioritetskö var tom när funktionen anropades, false annars.

get_allocator

Returnerar en kopia av allokeraren som används för att konstruera den samtidiga prioritetskön. Den här metoden är samtidighetssäker.

allocator_type get_allocator() const;

Returvärde

En kopia av allokeraren som används för att konstruera concurrent_priority_queue objektet.

operator=

Tilldelar innehållet i ett annat concurrent_priority_queue objekt till det här objektet. Den här metoden är inte samtidighetssäker.

concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);

concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);

Parameterar

_Src
Källobjektet concurrent_priority_queue.

Returvärde

En referens till det här concurrent_priority_queue objektet.

trycka

Lägger till ett element i den samtidiga prioritetskön. Den här metoden är samtidighetssäker.

void push(const value_type& _Elem);

void push(value_type&& _Elem);

Parameterar

_Elem
Det element som ska läggas till i den samtidiga prioritetskön.

storlek

Returnerar antalet element i den samtidiga prioritetskön. Den här metoden är samtidighetssäker.

size_type size() const;

Returvärde

Antalet element i det här concurrent_priority_queue objektet.

Anmärkningar

Den returnerade storleken är garanterad att inkludera alla element som läggs till av anrop till funktionen push. Det kanske dock inte återspeglar resultatet av väntande samtidiga åtgärder.

byta

Växlar innehållet i två samtidiga prioritetsköer. Den här metoden är inte samtidighetssäker.

void swap(concurrent_priority_queue& _Queue);

Parameterar

_Kö
Objektet concurrent_priority_queue som ska växlas innehåll med.

try_pop

Tar bort och returnerar det högsta prioritetselementet från kön om kön inte är tom. Den här metoden är samtidighetssäker.

bool try_pop(reference _Elem);

Parameterar

_Elem
En referens till en variabel som fylls i med elementet högsta prioritet, om kön inte är tom.

Returvärde

true om ett värde har poppats, false annars.

Se även

samtidighetsnamnområde
parallella containrar och objekt