priority_queue Class

Una classe 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 più elevata.I nuovi elementi possono essere aggiunti al priority_queue e l'elemento superiore del 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 distribuire 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 del priority_queue.Questo argomento è facoltativo e il contenitorebinario**::value_type**di less*<typename>* di predicato è 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 di contenitori sottostante Contenitore stipulato dal secondo parametro di modello.Tipo Deve essere assegnati, in modo che sia possibile copiare oggetti del tipo e assegnare valori alle variabili di tale tipo.

Il priority_queue ordinare la sequenza che controlla chiamando un oggetto funzione archiviato di classe Traits.Gli elementi devono in genere essere solo minore di confrontabili di stabilire questo ordine: in modo da, specificando tutti gli due elementi, poter stabilire uno che sono equivalenti in quanto non è inferiore all'altro) o che ne è inferiore all'altro.Ciò comporta un ordine tra elementi antivalenti.In una più nota tecnica, la funzione di confronto è un predicato binario che provoca un ordine debole rigido nel senso matematico standard.

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

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

Esistono tre tipi di adattatori del contenitore definiti dalla libreria STL: stack, code 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 un oggetto last in, struttura di dati prima di fuori di (LIFO).Un buon analogo ricordare è uno stack dei piatti.Gli elementi (piastrine) possono essere inseriti, controllati, o essere rimossi solo dall'inizio dello stack, che rappresenta 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 un oggetto first in, struttura di dati prima di fuori di (FIFO).Un buon analogo 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.La parte precedente che la parte finale della linea è possibile archiviare.La restrizione per accedere solo la parte precedente e gli elementi sono in questo modo è il motivo per l'utilizzo della classe della coda.

  • La classe di priority_queue ordina gli elementi in modo che il massimo elemento sia sempre al percorso.Supporta l'inserimento di un elemento e l'ispezione e la rimozione dell'elemento superiore.Un buon analogo ricordare sarebbe persone che consente di allineare in cui sono disposti dall'età, height, o un altro modello.

4ef4dae9.collapse_all(it-it,VS.110).gifCostruttori

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.

4ef4dae9.collapse_all(it-it,VS.110).gifDefinizioni 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 priority_queue.

value_type

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

4ef4dae9.collapse_all(it-it,VS.110).gifFunzioni membro

empty

Test priority_queue se è vuoto.

pop

Elimina il massimo elemento priority_queue dalla posizione superiore.

push

Aggiunge un elemento alla coda delle priorità in base alla priorità dell'elemento da operator<.

size

Restituisce il numero di elementi in priority_queue.

top

Restituisce un riferimento const a più grande elemento all'inizio priority_queue.

Requisiti

Header: <queue>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

Libreria di modelli standard