multimap (STL/CLR)
La classe modello vengono descritti un oggetto e controlli di una sequenza variare lunghezza di elementi che ha accesso bidirezionale.Si utilizza il contenitore multimap per gestire una sequenza di elementi come (quasi) è bilanciato la struttura ad albero ordinato di nodi, ogni un elemento archiviante.Un elemento è costituito da una chiave, per ordinare la sequenza e di un valore mappato, che passa avanti per disattivare.
Nella descrizione di seguito, GValue sono gli stessi di:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
Dove:
GKey sono gli stessi di Key a meno che quest'ultimo sia un tipo di riferimento, nel qual caso viene Key^
GMapped sono gli stessi di Mapped a meno che quest'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 iteratore costante per la sequenza selezionata. |
|
Il tipo di riferimento costante a un elemento. |
|
Il tipo di iteratore inverso costante per la sequenza selezionata. |
|
Il tipo di distanza (possibilmente con segno) tra due elementi. |
|
Il tipo dell'interfaccia generica per il contenitore. |
|
il tipo di iteratore per l'interfaccia generica per il contenitore. |
|
il tipo di iteratore inverso per l'interfaccia generica per il contenitore. |
|
il tipo di elemento per l'interfaccia generica per il contenitore. |
|
Il tipo di iteratore per la sequenza selezionata. |
|
Il delegato dell'ordine per due chiavi. |
|
Il tipo di chiave di ordinamento. |
|
Il tipo del valore mappato associato a ogni chiave. |
|
Il tipo di riferimento a un elemento. |
|
Il tipo di iteratore inverso per la sequenza selezionata. |
|
Il tipo di distanza (non negativa) di un oggetto tra due elementi. |
|
Il delegato dell'ordine per due valori dell'elemento. |
|
Il tipo di elemento. |
Funzione membro |
Descrizione |
---|---|
Definisce l'inizio della sequenza controllata. |
|
Rimuove tutti gli elementi. |
|
Conta gli elementi che soddisfano una chiave specificata. |
|
Verifica se non sono presenti elementi presenti. |
|
Definisce la fine della sequenza controllata. |
|
I trova variano che corrisponde a una chiave specificata. |
|
Rimuove gli elementi alle posizioni specificate. |
|
Viene trovato un elemento che corrisponde alla chiave specificata. |
|
Aggiunge gli elementi. |
|
Copia il delegato dell'ordine per due chiavi. |
|
Rileva 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 in una nuova matrice. |
|
Fine di individuare di temporizzazione che corrisponde a una chiave specificata. |
|
Copia il delegato dell'ordine per due valori dell'elemento. |
Operatore |
Descrizione |
---|---|
Sostituisce la sequenza selezionata. |
|
Determina se un oggetto di multimap non è uguale 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 |
---|---|
Clonare un oggetto. |
|
Sequenza degli elementi. |
|
gestire il gruppo di elementi. |
|
Sequenza degli elementi tipizzati. |
|
gestire il gruppo di elementi tipizzati. |
|
ITree<chiave, valore> |
gestire il contenitore generico. |
Note
L'oggetto alloca e libera la memoria per la sequenza che controlla come singoli nodi.Inserisce gli elementi in un oggetto (quasi) non è bilanciato la struttura ad albero che lo mantiene ordinato modifica dei collegamenti tra i nodi, mai copiando il contenuto di un nodo a un altro.Ciò significa che è possibile inserire liberamente e rimuovere elementi senza alterare 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 necessario imporre un ordine debole rigido le chiavi di tipo multimap::key_type (STL/CLR).Ciò significa, per due chiavi X e Y:
key_comp()(X, Y) restituisce lo stesso risultato booleano a ogni chiamata.
Se key_comp()(X, Y) è true, quindi key_comp()(Y, X) deve essere false.
Se key_comp()(X, Y) è true, quindi X sarebbe ordinato prima di Y.
Se !key_comp()(X, Y) && !key_comp()(Y, X) è true, quindi X e Y causate da avere ordine equivalente.
Per qualsiasi elemento X che precede Y nella 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 di classe modello multimap non richiede che le chiavi per tutti gli elementi siano univoche.(Due o più tasti 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 ultimo elemento nella sequenza selezionata, se presente.È possibile incrementare un iteratore di multimap per ottenere il nodo head quindi confronta uguale a end().Ma non è possibile dereferenziare l'iteratore restituito da end().
Si noti che non è possibile fare riferimento a un elemento di multimap direttamente in base alla posizione numerica -- ciò richiede un iteratore di accesso casuale.
Un iteratore di multimap memorizzare l'handle al nodo associato di multimap, che a sua volta memorizzare l'handle al relativo contenitore associato.È possibile utilizzare gli iteratori solo con i relativi oggetti contenitore associati.Un iteratore di multimap rimane valido a condizione che il relativo nodo associato di multimap essere associato a un certo 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().
Cancellando o la rimozione di un elemento chiama il distruttore per il valore archiviato.Eliminare il contenitore di cancellare tutti gli elementi.Pertanto, un contenitore del tipo di elemento è una classe di riferimento garantisce che nessun elemento terminazione il contenitore.Si noti, tuttavia, che un contenitore di handle fa not elimina i relativi elementi.
Requisiti
intestazione: <cliext/mapping>
Cliext diSpazio dei nomi: