Delen via


concurrent_priority_queue-klasse

De concurrent_priority_queue klasse is een container waarmee meerdere threads gelijktijdig items kunnen pushen en pop-items kunnen pushen. Items worden weergegeven in prioriteitsvolgorde waarbij prioriteit wordt bepaald door een functor die als sjabloonargument wordt opgegeven.

Syntaxis

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

Parameterwaarden

T
Het gegevenstype van de elementen die moeten worden opgeslagen in de prioriteitswachtrij.

_Vergelijken
Het type van het functieobject waarmee twee elementwaarden kunnen worden vergeleken als sorteersleutels om de relatieve volgorde in de prioriteitswachtrij te bepalen. Dit argument is optioneel en het binaire predicaat less<T> is de standaardwaarde.

_Bijl
Het type dat het opgeslagen allocatorobject vertegenwoordigt dat details bevat over de toewijzing en toewijzing van het geheugen voor de wachtrij met gelijktijdige prioriteit. Dit argument is optioneel en de standaardwaarde is allocator<T>.

Leden

Openbare typedefs

Naam Beschrijving
allocator_type Een type dat de allocatorklasse vertegenwoordigt voor de wachtrij met gelijktijdige prioriteit.
const_reference Een type dat een constverwijzing vertegenwoordigt naar een element van het type dat is opgeslagen in een wachtrij met gelijktijdige prioriteit.
reference Een type dat een verwijzing vertegenwoordigt naar een element van het type dat is opgeslagen in een wachtrij met gelijktijdige prioriteit.
size_type Een type waarmee het aantal elementen in een wachtrij met gelijktijdige prioriteit wordt geteld.
value_type Een type dat het gegevenstype vertegenwoordigt dat is opgeslagen in een wachtrij met gelijktijdige prioriteit.

Openbare constructors

Naam Beschrijving
concurrent_priority_queue Overbelast. Maakt een wachtrij met gelijktijdige prioriteit.

Openbare methoden

Naam Beschrijving
wissen Hiermee worden alle elementen in de gelijktijdige prioriteit gewist. Deze methode is niet gelijktijdigheidsveilig.
leeg Test of de wachtrij voor gelijktijdige prioriteit leeg is op het moment dat deze methode wordt aangeroepen. Deze methode is gelijktijdigheidsveilig.
get_allocator Retourneert een kopie van de allocator die wordt gebruikt om de wachtrij met gelijktijdige prioriteit samen te stellen. Deze methode is gelijktijdigheidsveilig.
pushen Overbelast. Hiermee voegt u een element toe aan de wachtrij met gelijktijdige prioriteit. Deze methode is gelijktijdigheidsveilig.
grootte Retourneert het aantal elementen in de wachtrij met gelijktijdige prioriteit. Deze methode is gelijktijdigheidsveilig.
ruilen Hiermee wordt de inhoud van twee wachtrijen met gelijktijdige prioriteit gewisseld. Deze methode is niet gelijktijdigheidsveilig.
try_pop Verwijdert en retourneert het element met de hoogste prioriteit uit de wachtrij als de wachtrij niet leeg is. Deze methode is gelijktijdigheidsveilig.

Openbare operators

Naam Beschrijving
operator = Overbelast. Hiermee wordt de inhoud van een ander concurrent_priority_queue object aan dit object toegewezen. Deze methode is niet gelijktijdigheidsveilig.

Opmerkingen

Zie concurrent_priority_queuevoor gedetailleerde informatie over de klasse .

Overnamehiërarchie

concurrent_priority_queue

Behoeften

Koptekst: concurrent_priority_queue.h

naamruimte: gelijktijdigheid

duidelijk

Hiermee worden alle elementen in de gelijktijdige prioriteit gewist. Deze methode is niet gelijktijdigheidsveilig.

void clear();

Opmerkingen

clear is niet gelijktijdigheidsveilig. U moet ervoor zorgen dat er geen andere threads methoden aanroepen in de wachtrij met gelijktijdige prioriteit wanneer u deze methode aanroept. clear maakt geen geheugen vrij.

concurrent_priority_queue

Maakt een wachtrij met gelijktijdige prioriteit.

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

Parameterwaarden

_InputIterator
Het type invoer-iterator.

_Al
De allocatorklasse die met dit object moet worden gebruikt.

_Init_capacity
De oorspronkelijke capaciteit van het concurrent_priority_queue object.

_Beginnen
De positie van het eerste element in het bereik van elementen dat moet worden gekopieerd.

_Einde
De positie van het eerste element buiten het bereik van elementen dat moet worden gekopieerd.

_Src
Het bronobject concurrent_priority_queue kopiëren of verplaatsen van elementen.

Opmerkingen

Alle constructors slaan een allocatorobject _Al op en initialiseren de prioriteitswachtrij.

De eerste constructor geeft een lege wachtrij met eerste prioriteit op en geeft desgewenst een allocator op.

De tweede constructor geeft een prioriteitswachtrij met een initiële capaciteit _Init_capacity op en geeft desgewenst een allocator op.

De derde constructor geeft waarden op die worden opgegeven door het iteratorbereik [ _Begin, _End) en geeft desgewenst een allocator op.

De vierde en vijfde constructors geven een kopie van de prioriteitswachtrij _Srcop.

De zesde en zevende constructors geven een verplaatsing van de prioriteitswachtrij _Srcop.

leeg

Test of de wachtrij voor gelijktijdige prioriteit leeg is op het moment dat deze methode wordt aangeroepen. Deze methode is gelijktijdigheidsveilig.

bool empty() const;

Retourwaarde

true als de prioriteitswachtrij leeg was op het moment dat de functie werd aangeroepen, false anders.

get_allocator

Retourneert een kopie van de allocator die wordt gebruikt om de wachtrij met gelijktijdige prioriteit samen te stellen. Deze methode is gelijktijdigheidsveilig.

allocator_type get_allocator() const;

Retourwaarde

Een kopie van de allocator die wordt gebruikt om het concurrent_priority_queue object samen te stellen.

operator=

Hiermee wordt de inhoud van een ander concurrent_priority_queue object aan dit object toegewezen. Deze methode is niet gelijktijdigheidsveilig.

concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);

concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);

Parameterwaarden

_Src
Het bronobject concurrent_priority_queue.

Retourwaarde

Een verwijzing naar dit concurrent_priority_queue-object.

duwen

Hiermee voegt u een element toe aan de wachtrij met gelijktijdige prioriteit. Deze methode is gelijktijdigheidsveilig.

void push(const value_type& _Elem);

void push(value_type&& _Elem);

Parameterwaarden

_Elem
Het element dat moet worden toegevoegd aan de wachtrij met gelijktijdige prioriteit.

grootte

Retourneert het aantal elementen in de wachtrij met gelijktijdige prioriteit. Deze methode is gelijktijdigheidsveilig.

size_type size() const;

Retourwaarde

Het aantal elementen in dit concurrent_priority_queue object.

Opmerkingen

De geretourneerde grootte is gegarandeerd om alle elementen op te nemen die door aanroepen aan de functie pushworden toegevoegd. Het kan echter niet overeenkomen met resultaten van gelijktijdige bewerkingen die in behandeling zijn.

ruilen

Hiermee wordt de inhoud van twee wachtrijen met gelijktijdige prioriteit gewisseld. Deze methode is niet gelijktijdigheidsveilig.

void swap(concurrent_priority_queue& _Queue);

Parameterwaarden

_Rij
Het concurrent_priority_queue object waarmee inhoud moet worden gewisseld.

try_pop

Verwijdert en retourneert het element met de hoogste prioriteit uit de wachtrij als de wachtrij niet leeg is. Deze methode is gelijktijdigheidsveilig.

bool try_pop(reference _Elem);

Parameterwaarden

_Elem
Een verwijzing naar een variabele die wordt gevuld met het element met de hoogste prioriteit als de wachtrij niet leeg is.

Retourwaarde

true als er een waarde is weergegeven, false anders.

Zie ook

naamruimte voor gelijktijdigheid
parallelle containers en objecten