Condividi tramite


priority_queue (STL/CLR)

La classe modello descrive un oggetto che comandi di una sequenza ordinata in base alla lunghezza di elementi che dispone di accesso limitati. Utilizzare l'adattatore priority_queue contenitore per gestire un contenitore sottostante come coda delle priorità.

In descrizione di seguito, GValue sono gli stessi di Value eccetto l'ultimo sia un tipo di riferimento, nel qual caso viene Value^. Analogamente, GContainer sono gli stessi di Container eccetto l'ultimo sia un tipo di riferimento, nel qual caso viene Container^.

template<typename Value,
    typename Container>
    ref class priority_queue
        System::ICloneable,
        Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
    { ..... };

Parametri

  • Valore
    Tipo di un elemento nella sequenza controllata.

  • Contenitore
    Tipo del contenitore sottostante.

Membri

Definizione del tipo

Descrizione

priority_queue::const_reference (STL/CLR)

Il tipo di un riferimento costante a un elemento.

priority_queue::container_type (STL/CLR)

Tipo del contenitore sottostante.

priority_queue::difference_type (STL/CLR)

Il tipo di una distanza con segno tra due elementi.

priority_queue::generic_container (STL/CLR)

Il tipo dell'interfaccia generica per l'adattatore del contenitore.

priority_queue::generic_value (STL/CLR)

Il tipo di elemento dell'interfaccia generica per l'adattatore del contenitore.

priority_queue::reference (STL/CLR)

Il tipo di un riferimento a un elemento.

priority_queue::size_type (STL/CLR)

Il tipo di una distanza con segno tra due elementi.

priority_queue::value_compare (STL/CLR)

Il delegato dell'ordine per due elementi.

priority_queue::value_type (STL/CLR)

Il tipo di un elemento.

Funzione membro

Descrizione

priority_queue::assign (STL/CLR)

Sostituisce tutti gli elementi.

priority_queue::empty (STL/CLR)

Consente di verificare se non sono presenti elementi.

priority_queue::get_container (STL/CLR)

Accede al contenitore sottostante.

priority_queue::pop (STL/CLR)

Rimuove l'elemento di hghest- priorità.

priority_queue::priority_queue (STL/CLR)

Costruisce un oggetto contenitore.

priority_queue::push (STL/CLR)

Aggiungere un nuovo elemento.

priority_queue::size (STL/CLR)

Conta il numero di elementi.

priority_queue::top (STL/CLR)

Accede all'elemento priorità più elevata.

priority_queue::to_array (STL/CLR)

Copia la sequenza selezionata una nuova matrice.

priority_queue::value_comp (STL/CLR)

Copia il delegato di ordinamento per due elementi.

Proprietà

Descrizione

priority_queue::top_item (STL/CLR)

Accede all'elemento priorità più elevata.

Operatore

Descrizione

priority_queue::operator= (STL/CLR)

Sostituisce la sequenza selezionata.

Interfacce

Interfaccia

Descrizione

ICloneable

Duplicare un oggetto.

IPriorityQueueValue<, contenitore>

Gestione dell'adattatore di contenitore generico.

Note

L'oggetto alloca e libera la memoria per la sequenza di controllo in un contenitore sottostante, di tipo Container, che contiene gli elementi di Value e aumenta su richiesta. Tiene la sequenza ordinata come heap, l'elemento con priorità più alta l'elemento superiore) facilmente accessibile e rimovibile. L'oggetto l'accesso a incremento degli elementi nuovi e a prelevare appena l'elemento priorità più elevata, che implementa una coda delle priorità.

L'oggetto ordina la sequenza che controlla chiamando un oggetto delegato archiviato di tipo priority_queue::value_compare (STL/CLR). È possibile specificare l'oggetto delegato archiviato quando si crea il priority_queue; se non si specifica oggetto delegato, l'impostazione predefinita è il confronto operator<(value_type, value_type). È possibile accedere a questo oggetto archiviato chiamando la funzione membro priority_queue::value_comp (STL/CLR)().

Tale oggetto delegato deve imporre un ordine debole rispetto ai valori di tipo priority_queue::value_type (STL/CLR). Ciò significa, per i due chiavi X e Y:

value_comp()(X, Y) restituisce lo stesso risultato booleano a ogni chiamata.

Se value_comp()(X, Y) è true, in value_comp()(Y, X) deve essere false.

Se value_comp()(X, Y) è true, in X sarebbe ordinato prima di Y.

Se !value_comp()(X, Y) && !value_comp()(Y, X) è true, in X e Y causate da ordine equivalente.

Per qualsiasi elemento X che precede Y sequenza selezionata, key_comp()(Y, X) è false. (Per l'oggetto delegato predefinito, chiavi non diminuiscono mai il valore).

L'elemento priorità più elevata viene convertita in uno degli elementi che non è stato ordinato prima di qualsiasi altro elemento.

Poiché il contenitore sottostante gestisce gli elementi ordinati come heap:

Il contenitore deve supportare gli iteratori di accesso casuale.

Gli elementi con ordine equivalente possono essere prelievo in un ordine diverso che sono stati stack. (L'ordine non diventa stabile.)

Pertanto, i candidati per il contenitore sottostante includono deque (STL/CLR) e vector (STL/CLR).

Requisiti

Intestazione:<cliext/queue>

Spazio dei nomi: cliext

Vedere anche

Riferimenti

deque (STL/CLR)

queue (STL/CLR)

stack (STL/CLR)

vector (STL/CLR)

Altre risorse

Riferimenti della libreria STL/CLR