Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.