Condividi tramite


Classe concurrent_priority_queue

La classe concurrent_priority_queue è un contenitore che consente a più thread di inserire e togliere elementi contemporaneamente. Gli elementi vengono prelevati secondo un ordine di priorità dove la priorità è determinata da una funzione fornita come argomento del modello.

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

Parametri

  • _Ty
    Tipo di dati degli elementi da archiviare nella coda di priorità.

  • _Compare
    Tipo dell'oggetto funzione che può confrontare i valori di due elementi come chiavi di ordinamento per determinare il loro ordine relativo nella coda di priorità. Questo argomento è facoltativo e il predicato binario less<_Ty**>** è il valore predefinito.

  • _Ax
    Tipo rappresentante l'oggetto dell'allocatore memorizzato che include i dettagli sull'allocazione e sulla deallocazione di memoria per la coda di priorità simultanea. Questo argomento è facoltativo e il valore predefinito è allocator<_Ty**>**.

Membri

Typedef pubblici

Nome

Descrizione

allocator_type

Un tipo che rappresenta la classe dell'allocatore per la coda di priorità simultanea.

const_reference

Un tipo che rappresenta un riferimento const ad un elemento del tipo archiviato in una coda di priorità simultanea.

reference

Un tipo che rappresenta un riferimento ad un elemento del tipo archiviato in una coda di priorità simultanea.

size_type

Un tipo che conta il numero di elementi in una coda di priorità simultanea.

value_type

Un tipo che rappresenta il tipo di dati archiviati nella coda di priorità simultanea.

Costruttori pubblici

Nome

Descrizione

Costruttore concurrent_priority_queue::concurrent_priority_queue

Di overload. Costruisce una coda di priorità simultanea.

Metodi pubblici

Nome

Descrizione

Metodo concurrent_priority_queue::clear

Cancella tutti gli elementi nella coda di priorità simultanea. Tale metodo non è sicuro per concorrenza.

Metodo concurrent_priority_queue::empty

Consente di testare se la coda di priorità simultanea è vuota nel momento in cui questo metodo viene chiamato. Tale metodo è sicuro per concorrenza.

Metodo concurrent_priority_queue::get_allocator

Consente di restituire una copia dell'allocatore utilizzato per costruire la coda di priorità simultanea. Tale metodo è sicuro per concorrenza.

Metodo concurrent_priority_queue::push

Di overload. Aggiunge un elemento alla coda di priorità simultanea. Tale metodo è sicuro per concorrenza.

Metodo concurrent_priority_queue::size

Restituisce il numero di elementi presenti nella coda di priorità simultanea. Tale metodo è sicuro per concorrenza.

Metodo concurrent_priority_queue::swap

Scambia il contenuto di due code di priorità simultanee. Tale metodo non è sicuro per concorrenza.

Metodo concurrent_priority_queue::try_pop

Rimuove e restituisce l'elemento con la priorità più elevata dalla coda se la coda non è vuota. Tale metodo è sicuro per concorrenza.

Operatori pubblici

Nome

Descrizione

Operatore concurrent_priority_queue::operator=

Di overload. Assegna il contenuto di un altro oggetto concurrent_priority_queue a questo. Tale metodo non è sicuro per concorrenza.

Note

Per informazioni dettagliate sulla classe concurrent_priority_queue, vedere Contenitori e oggetti paralleli.

Gerarchia di ereditarietà

concurrent_priority_queue

Requisiti

Intestazione: concurrent_priority_queue.h

Spazio dei nomi: concorrenza

Vedere anche

Riferimenti

Spazio dei nomi concurrency

Concetti

Contenitori e oggetti paralleli