Condividi tramite


multiset (STL/CLR)

La classe modello descrive un oggetto che comandi di una sequenza variare lunghezza di elementi che ha accesso bidirezionale. Utilizzare il contenitore multiset per gestire una sequenza di elementi how to (quasi) è bilanciato la struttura ad albero ordinata di nodi, ogni un elemento archiviando.

In descrizione di seguito, GValue sono gli stessi di GKey, che a sua volta corrispondano a quelli di Key eccetto l'ultimo sia un tipo di riferimento, nel qual caso viene Key^.

template<typename Key>
    ref class multiset
        :   public
        System::ICloneable,
        System::Collections::IEnumerable,
        System::Collections::ICollection,
        System::Collections::Generic::IEnumerable<GValue>,
        System::Collections::Generic::ICollection<GValue>,
        System::Collections::Generic::IList<GValue>,
        Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
    { ..... };

Parametri

  • Chiave
    Tipo del componente chiave di un elemento nella sequenza controllata.

Membri

Definizione del tipo

Descrizione

multiset::const_iterator (STL/CLR)

Il tipo di un iteratore costante della sequenza controllata.

multiset::const_reference (STL/CLR)

Il tipo di un riferimento costante a un elemento.

multiset::const_reverse_iterator (STL/CLR)

Il tipo di iteratore inverso costante per la sequenza selezionata.

multiset::difference_type (STL/CLR)

Il tipo di distanza (eventualmente firmata) tra due elementi.

multiset::generic_container (STL/CLR)

Il tipo dell'interfaccia generica del contenitore.

multiset::generic_iterator (STL/CLR)

Il tipo di iteratore per l'interfaccia generica del contenitore.

multiset::generic_reverse_iterator (STL/CLR)

Il tipo di iteratore inverso per l'interfaccia generica del contenitore.

multiset::generic_value (STL/CLR)

Il tipo di elemento dell'interfaccia generica del contenitore.

multiset::iterator (STL/CLR)

Il tipo di un iteratore della sequenza controllata.

multiset::key_compare (STL/CLR)

Il delegato dell'ordine per due chiavi.

multiset::key_type (STL/CLR)

Il tipo di una chiave di ordinamento.

multiset::reference (STL/CLR)

Il tipo di un riferimento a un elemento.

multiset::reverse_iterator (STL/CLR)

Il tipo di iteratore inverso per la sequenza selezionata.

multiset::size_type (STL/CLR)

Il tipo di distanza (non negativa) a tra due elementi.

multiset::value_compare (STL/CLR)

Il delegato dell'ordine per due valori degli elementi.

multiset::value_type (STL/CLR)

Il tipo di un elemento.

Funzione membro

Descrizione

multiset::begin (STL/CLR)

Definisce l'inizio della sequenza controllata.

multiset::clear (STL/CLR)

Rimuove tutti gli elementi.

multiset::count (STL/CLR)

Conta gli elementi che soddisfano una chiave specificata.

multiset::empty (STL/CLR)

Consente di verificare se non sono presenti elementi.

multiset::end (STL/CLR)

Definisce la fine della sequenza controllata.

multiset::equal_range (STL/CLR)

I rileva variano che corrisponde a una chiave specificata.

multiset::erase (STL/CLR)

Rimuove gli elementi alle posizioni specificate.

multiset::find (STL/CLR)

Viene trovato un elemento che corrisponde alla chiave specificata.

multiset::insert (STL/CLR)

Aggiunge elementi.

multiset::key_comp (STL/CLR)

Copiare il delegato dell'ordine per due chiavi.

multiset::lower_bound (STL/CLR)

Individuare l'inizio dell'intervallo che corrisponde a una chiave specificata.

multiset::make_value (STL/CLR)

Costruisce un oggetto di valore.

multiset::multiset (STL/CLR)

Costruisce un oggetto contenitore.

multiset::rbegin (STL/CLR)

Definisce l'inizio della sequenza inversa controllata.

multiset::rend (STL/CLR)

Definisce la fine della sequenza inversa controllata.

multiset::size (STL/CLR)

Conta il numero di elementi.

multiset::swap (STL/CLR)

Scambia il contenuto di due contenitori.

multiset::to_array (STL/CLR)

Copia la sequenza selezionata una nuova matrice.

multiset::upper_bound (STL/CLR)

Fine preleva di temporizzazione che corrisponde a una chiave specificata.

multiset::value_comp (STL/CLR)

Copiare il delegato dell'ordine per due valori degli elementi.

Operatore

Descrizione

multiset::operator= (STL/CLR)

Sostituisce la sequenza selezionata.

operator!= (multiset) (STL/CLR)

Determina se un oggetto di multiset non equivale a un altro oggetto di multiset.

operator< (multiset) (STL/CLR)

Determina se un oggetto di multiset è inferiore a un altro oggetto di multiset.

operator<= (multiset) (STL/CLR)

Determina se un oggetto di multiset è minore o uguale a un altro oggetto di multiset.

operator== (multiset) (STL/CLR)

Determina se un oggetto di multiset equivale a un altro oggetto di multiset.

operator> (multiset) (STL/CLR)

Determina se un oggetto di multiset è maggiore di un altro oggetto di multiset.

operator>= (multiset) (STL/CLR)

Determina se un oggetto di multiset è maggiore o uguale a un altro oggetto di multiset.

Interfacce

Interfaccia

Descrizione

ICloneable

Duplicare un oggetto.

IEnumerable

Sequenza degli elementi.

ICollection

Gestire il gruppo di elementi.

IEnumerable

Sequenza dagli elementi tipizzati.

ICollection

Gestire il gruppo di elementi tipizzati.

ITreeKey<, valore>

Gestire il contenitore generico.

Note

L'oggetto alloca e libera la memoria per la sequenza che controlla come singoli nodi. Inserisce gli elementi nella (quasi) non è bilanciato la struttura ad albero di mantenere ordinata cambiando i collegamenti tra i nodi, mai copiando il contenuto di un nodo a un altro. Ciò significa che è possibile inserire liberamente e rimuovere elementi senza pregiudicare gli elementi rimanenti.

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

Tale oggetto delegato deve imporre un ordine rigido debole le chiavi di tipo multiset::key_type (STL/CLR). Ciò significa, per i due chiavi X e Y:

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

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

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

Se !key_comp()(X, Y) && !key_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). A differenza della classe modello set (STL/CLR), un oggetto classe modello multiset non richiede che le chiavi per tutti gli elementi siano univoche. (Due o più chiavi possono avere ordine equivalente.)

Ogni elemento viene utilizzato sia ey che valore. La sequenza viene rappresentata in una modalità che consente la ricerca, l'inserimento e la rimozione di un elemento arbitrario attraverso una serie di operazioni proporzionali al logaritmo del numero di elementi della sequenza (tempo logaritmico). Inoltre, inserendo un elemento non invalida iteratori e la rimozione di un elemento invalida solo gli iteratori che puntano all'elemento rimosso.

Un multi-insieme supporta gli iteratori bidirezionali, è possibile avanzare agli elementi adiacenti fornito un iteratore che definisce un elemento nella sequenza selezionata. Un nodo head speciale corrisponde all'iteratore restituito da multiset::end (STL/CLR)(). È possibile diminuire questo iteratore per ottenere l'ultimo elemento della sequenza selezionata, se presente. È possibile incrementare un iteratore di multi-insieme per ottenere il nodo head quindi confronterà il segno di uguale a end(). Ma non è possibile dereferenziare l'iteratore restituito da end().

Si noti che non è possibile fare riferimento a un elemento di multi-insieme fornito direttamente la posizione numerica -- ciò richiede un iteratore di accesso casuale.

Un iteratore di multi-insieme memorizzare l'handle al nodo collegato di multi-insieme, che a sua volta memorizzare l'handle al relativo contenitore collegato. È possibile utilizzare gli iteratori solo con i relativi oggetti contenitore collegati. Un iteratore di multi-insieme rimane valido a condizione che il relativo nodo collegato di multi-insieme è associato ad alcuni multi-insieme. Inoltre, un iteratore valido è dereferencable -- è possibile utilizzarlo per accedere e modificare il valore dell'elemento che definisce -- a condizione che non sia uguale a end().

Clearing or rimozione di un elemento chiama il distruttore per il valore archiviato. Eliminare il contenitore di cancellare tutti gli elementi. Pertanto, un contenitore del cui tipo di elemento è una classe di riferimento garantisce che nessun elemento sopravviva il contenitore. Nota, tuttavia, che un contenitore handles fa not eliminato i relativi elementi.

Requisiti

Intestazione:<cliext/set>

Spazio dei nomi: cliext

Vedere anche

Riferimenti

hash_map (STL/CLR)

hash_multiset (STL/CLR)

hash_multiset (STL/CLR)

hash_set (STL/CLR)

map (STL/CLR)

multiset (STL/CLR)

set (STL/CLR)

Altre risorse

Riferimenti della libreria STL/CLR