multimap (STL/CLR)
La classe modello descrive un oggetto che comandi di una sequenza variare lunghezza di elementi che ha accesso bidirezionale. Utilizzare il contenitore multimap per gestire una sequenza di elementi how to (quasi) è bilanciato la struttura ad albero ordinata di nodi, ogni un elemento archiviando. Un elemento è costituito da una chiave, per ordinare la sequenza e un valore mappato, su avanti per il nuovo.
In descrizione di seguito, GValue sono gli stessi di:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
dove:
GKey sono gli stessi di Key eccetto l'ultimo sia un tipo di riferimento, nel qual caso viene Key^
GMapped sono gli stessi di Mapped eccetto l'ultimo sia un tipo di riferimento, nel qual caso viene Mapped^
template<typename Key,
typename Mapped>
ref class multimap
: 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.Mappato
Il tipo del componente aggiuntivo di un elemento nella sequenza selezionata.
Membri
Definizione del tipo |
Descrizione |
---|---|
Il tipo di un iteratore costante della sequenza controllata. |
|
Il tipo di un riferimento costante a un elemento. |
|
Il tipo di iteratore inverso costante per la sequenza selezionata. |
|
Il tipo di distanza (eventualmente firmata) tra due elementi. |
|
Il tipo dell'interfaccia generica del contenitore. |
|
Il tipo di iteratore per l'interfaccia generica del contenitore. |
|
Il tipo di iteratore inverso per l'interfaccia generica del contenitore. |
|
Il tipo di elemento dell'interfaccia generica del contenitore. |
|
Il tipo di un iteratore della sequenza controllata. |
|
Il delegato dell'ordine per due chiavi. |
|
Il tipo di una chiave di ordinamento. |
|
Il tipo del valore mappato associato a ogni chiave. |
|
Il tipo di un riferimento a un elemento. |
|
Il tipo di iteratore inverso per la sequenza selezionata. |
|
Il tipo di distanza (non negativa) a tra due elementi. |
|
Il delegato dell'ordine per due valori degli elementi. |
|
Il tipo di un elemento. |
Funzione membro |
Descrizione |
---|---|
Definisce l'inizio della sequenza controllata. |
|
Rimuove tutti gli elementi. |
|
Conta gli elementi che soddisfano una chiave specificata. |
|
Consente di verificare se non sono presenti elementi. |
|
Definisce la fine della sequenza controllata. |
|
I rileva variano che corrisponde a una chiave specificata. |
|
Rimuove gli elementi alle posizioni specificate. |
|
Viene trovato un elemento che corrisponde alla chiave specificata. |
|
Aggiunge elementi. |
|
Copiare il delegato dell'ordine per due chiavi. |
|
Individuare l'inizio dell'intervallo che corrisponde a una chiave specificata. |
|
Costruisce un oggetto di valore. |
|
Costruisce un oggetto contenitore. |
|
Definisce l'inizio della sequenza inversa controllata. |
|
Definisce la fine della sequenza inversa controllata. |
|
Conta il numero di elementi. |
|
Scambia il contenuto di due contenitori. |
|
Copia la sequenza selezionata una nuova matrice. |
|
Fine preleva di temporizzazione che corrisponde a una chiave specificata. |
|
Copiare il delegato dell'ordine per due valori degli elementi. |
Operatore |
Descrizione |
---|---|
Sostituisce la sequenza selezionata. |
|
Determina se un oggetto di multimap non equivale a un altro oggetto di multimap. |
|
Determina se un oggetto di multimap è inferiore a un altro oggetto di multimap. |
|
Determina se un oggetto di multimap è minore o uguale a un altro oggetto di multimap. |
|
Determina se un oggetto di multimap equivale a un altro oggetto di multimap. |
|
Determina se un oggetto di multimap è maggiore di un altro oggetto di multimap. |
|
Determina se un oggetto di multimap è maggiore o uguale a un altro oggetto di multimap. |
Interfacce
Interfaccia |
Descrizione |
---|---|
Duplicare un oggetto. |
|
Sequenza degli elementi. |
|
Gestire il gruppo di elementi. |
|
Sequenza dagli elementi tipizzati. |
|
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 multimap::key_compare (STL/CLR). È possibile specificare l'oggetto delegato archiviato quando si crea il multimap; 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 multimap::key_comp (STL/CLR)().
Tale oggetto delegato deve imporre un ordine rigido debole le chiavi di tipo multimap::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 map (STL/CLR), un oggetto classe modello multimap non richiede che le chiavi per tutti gli elementi siano univoche. (Due o più chiavi possono avere ordine equivalente.)
Ogni elemento contiene una chiave separata e un valore mappato. 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 multimap 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 multimap::end (STL/CLR)(). È possibile diminuire questo iteratore per ottenere l'ultimo elemento della sequenza selezionata, se presente. È possibile incrementare un iteratore di multimap 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 multimap fornito direttamente la posizione numerica -- ciò richiede un iteratore di accesso casuale.
Un iteratore di multimap memorizzare l'handle al nodo collegato di multimap, 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 multimap rimane valido a condizione che il relativo nodo collegato di multimap è associato ad alcuni multimap. 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/map>
Spazio dei nomi: cliext