Condividi tramite


Classe priority_queue

Una classe di adattatori del contenitore del modello che fornisce una restrizione di accesso di limitazione dell'elemento superiore di un certo tipo sottostante del contenitore, che è sempre il più grande o di priorità più elevata. I nuovi elementi possono essere aggiunti a priority_queue e l'elemento superiore priority_queue può essere esaminato o rimosso.

template < 
   class Type,  
   class Container=vector<Type>, 
   class Compare=less<typename Container::value_type>  
> 
class priority_queue

Parametri

  • Type
    Il tipo di dati degli elementi da archiviare in priority_queue.

  • Container
    Il tipo sottostante del contenitore utilizzato per implementare il priority_queue.

  • Confronto
    Il tipo che fornisce un oggetto funzione che può confrontare due valori degli elementi come chiavi di ordinamento per determinare il relativo ordine relativo in priority_queue. Questo argomento è facoltativo e il predicato binario less*<typename Container*::value_type***>* è il valore predefinito.

Note

Gli elementi di classe Tipo stipulati nel primo parametro di modello di un oggetto coda sono sinonimi con value_type e devono corrispondere al tipo di elemento della classe contenitore sottostante Contenitore stipulato dal secondo parametro di modello. Tipo Deve essere assegnati, in modo che sia possibile copiare oggetti di quel tipo e assegnare valori alle variabili di tale tipo.

Il priority_queue ordina la sequenza che controlla chiamando un oggetto funzione archiviato di classe Tratti. In generale, gli elementi semplicemente devono essere confrontabili come "minore di" per stabilire questo ordine: in modo che, dati qualsiasi due elementi, sia possibile determinare che sono equivalenti (ovvero che uno non è minore dell'altro) o che uno è minore dell'altro. Ciò comporta un ordinamento tra elementi non equivalenti. In una nota più tecnica, la funzione di confronto è un predicato binario che include in un modo debole un ordine rigido nel senso matematico standard.

Le classi di contenitori sottostanti appropriate per priority_queue includono classe di deque e classe vector predefinito o qualsiasi altro contenitore di sequenza che supporta le operazioni di front, push_back e pop_back e un iteratore di accesso casuale. La classe container sottostante è incapsulata all'interno dell'adattatore del contenitore, che espone solo il set limitato delle funzioni membro del contenitore di sequenza come interfaccia pubblica.

Gli elementi di aggiungere e rimuovere elementi da priority_queue dispongono entrambi di complessità logaritmica. Accedere agli elementi in priority_queue ha complessità costante.

Esistono tre tipi di adattatori del contenitore definiti dal contenitore: stack, coda e priority_queue. Ciascuno limita la funzionalità di una classe di contenitori sottostante per fornire un'interfaccia con precisione controllata in una struttura di dati standard.

  • classe dello stack supporta a last in first, struttura di dati first out di (LIFO). Una situazione simile ricordare è uno stack dei piatti. Gli elementi (piastrine) possono essere inseriti, controllati, o essere rimossi solo dall'inizio dello stack, che costituisce l'ultimo elemento alla fine del contenitore di base. La restrizione per accedere solo l'elemento superiore è il motivo per l'utilizzo della classe dello stack.

  • classe queue supporta a first in, struttura di dati first out di (FIFO). Una situazione simile ricordare sarebbe persone che consente di allineare per un cassiere di bank. Gli elementi (persone) possono essere aggiunti posteriore della riga e vengono rimossi dall'inizio della riga. Sia la parte precedente che la parte finale di una riga possono essere archiviate. La restrizione per accedere solo la parte precedente e gli elementi indietro in questo modo è il motivo per l'utilizzo della classe queue.

  • La classe priority_queue ordina i relativi elementi in modo che il più grande elemento sia sempre all'inizio posizione. Supporta l'inserimento di un elemento e l'esame e la rimozione dell'elemento superiore. Una situazione simile ricordare sarebbe persone che consente di allineare in cui sono disposti dall'età, dell'altezza, o un altro modello.

Costruttori

priority_queue

Costruisce priority_queue che è vuoto o mediante la copia di un intervallo di un oggetto contenitore di base o di un altro priority_queue.

Definizioni typedef

container_type

Un tipo che fornisce il contenitore di base da adattarsi da priority_queue.

size_type

Un tipo integer senza segno che può rappresentare il numero di elementi in una priority_queue.

Tipo di valore

Un tipo che rappresenta il tipo di oggetto archiviato come elemento in priority_queue.

Funzioni del membro

empty

Verifica se priority_queue è vuoto.

pop

Elimina il più grande elemento di priority_queue dalla posizione superiore.

push

Aggiunge un elemento alla coda delle priorità in base alla priorità dell'elemento dall'< operatore.

size

Restituisce il numero di elementi nella priority_queue.

top

Restituisce un riferimento const al più grande all'inizio di priority_queue.

Requisiti

coda <diIntestazione: >

Spazio dei nomi: std

Vedere anche

Riferimenti

Sicurezza dei thread nella libreria standard C++

Libreria di modelli standard