unordered_multimap Class
La classe modello vengono descritti un oggetto e controlli di una sequenza variare lunghezza di elementi di tipo std::pair<const Key, Ty>.La sequenza è ordinata una derivazione da una funzione hash, che esegue il partizionamento della sequenza in serie ordinata di sottosequenze chiamate bucket.In ogni bucket una funzione di confronto determina se una qualsiasi coppia di elementi in ordine equivalente.Ogni elemento contiene due oggetti, una chiave di ordinamento e un 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 che possono essere indipendenti dal numero di elementi nella sequenza (tempo una costante, almeno quando tutti i bucket hanno lunghezza quasi equivalente.Nel caso peggiore, quando tutti gli elementi presenti in un bucket, il numero di operazioni è proporzionale al numero di elementi della sequenza temporale lineare ().Inoltre, inserendo un elemento non invalida iteratori e rimozione di un elemento invalida solo gli iteratori che puntano all'elemento rimosso.
template<class Key,
class Ty,
class Hash = std::tr1::hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<Key> >
class unordered_multimap;
Parametri
Parametro |
Descrizione |
Key |
Il tipo di chiave. |
Ty |
Il tipo mappato. |
Hash |
Il tipo di oggetto di funzione hash. |
Pred |
Il tipo di oggetto funzione di confronto di uguaglianza. |
Alloc |
La classe di un allocatore. |
Membri
Definizione del tipo |
Descrizione |
Il tipo di allocatore per gestire l'archiviazione. |
|
Il tipo di iteratore costante per la sequenza selezionata. |
|
Il tipo di iteratore costante del bucket della sequenza selezionata. |
|
Il tipo di puntatore costante a un elemento. |
|
Il tipo di riferimento costante a un elemento. |
|
Il tipo di distanza con segno tra due elementi. |
|
Il tipo di funzione hash. |
|
Il tipo di iteratore per la sequenza selezionata. |
|
Il tipo di funzione di confronto. |
|
Il tipo di tasto di ordine. |
|
Il tipo di iteratore del bucket della sequenza selezionata. |
|
Il tipo di valore mappato associato a ogni chiave. |
|
Il tipo di puntatore a un elemento. |
|
Il tipo di riferimento a un elemento. |
|
Il tipo di distanza senza segno tra due elementi. |
|
Il tipo di elemento. |
Funzione membro |
Descrizione |
Definisce l'inizio della sequenza controllata. |
|
Ottiene il numero del bucket per un valore di chiave. |
|
Ottiene il numero dei bucket. |
|
Ottiene la dimensione di un bucket. |
|
Definisce l'inizio della sequenza controllata. |
|
Definisce la fine della sequenza controllata. |
|
Rimuove tutti gli elementi. |
|
Trova il numero di elementi che corrispondono a una chiave specificata. |
|
Aggiunge un elemento costruito sul posto. |
|
Aggiunge un elemento costruito sul posto, al suggerimento. |
|
Verifica se non sono presenti elementi. |
|
Definisce la fine della sequenza controllata. |
|
I variano rileva che corrisponde a una chiave specificata. |
|
Rimuove gli elementi alle posizioni specificate. |
|
Viene trovato un elemento che corrisponde alla chiave specificata. |
|
Ottiene l'oggetto memorizzato di allocatore. |
|
Ottiene l'oggetto memorizzato di funzione hash. |
|
Aggiunge elementi. |
|
Ottiene l'oggetto memorizzato di funzione di confronto. |
|
Conta gli elementi e l'altro per bucket. |
|
Ottiene il numero massimo di bucket. |
|
Ottiene o imposta elementi massimo per bucket. |
|
Ottiene la dimensione massima della sequenza selezionata. |
|
Ricompila la tabella hash. |
|
Conta il numero di elementi. |
|
Scambia il contenuto di due contenitori. |
|
Costruisce un oggetto contenitore. |
Operatore |
Descrizione |
Copia una tabella hash. |
Note
L'oggetto ordina la sequenza che controlla chiamando due oggetti memorizzati, un oggetto di funzione di confronto di tipo unordered_multimap::key_equal e un oggetto di funzione hash di tipo unordered_multimap::hasher.Si accede all'oggetto prima di chiamare la funzione membro unordered_multimap::key_eq(); e accedere al secondo oggetto archiviato chiamando la funzione membro unordered_multimap::hash_function().In particolare, per i valori X e Y di tipo Key, la chiamata key_eq()(X, Y) restituisce true solo se i due valori degli argomenti in ordine equivalente, la chiamata hash_function()(keyval) produce una distribuzione di valori di tipo size_t.A differenza della classe modello unordered_map Class, un oggetto classe modello unordered_multimap non garantisce che key_eq()(X, Y) sia sempre false per tutti gli due elementi della sequenza selezionata.(Chiavi non devono essere univoci.)
L'oggetto inoltre memorizza un fattore di carico massimo, che specifica il massimo numero medio desiderato di elementi per bucket.Se inserire un elemento in unordered_multimap::load_factor() a superare il fattore di carico massimo, il contenitore aumenta il numero dei bucket e ricompila la tabella hash in base alle necessità.
L'ordine effettivo di elementi della sequenza selezionata dipende dalla funzione hash, la funzione di confronto, dall'ordine di inserimento, dal fattore di carico massimo e il numero corrente dei bucket.Non è possibile prevedere in generale l'ordine degli elementi nella sequenza selezionata.È sempre possibile raggruppare, tuttavia, che tutto il sottoinsieme di elementi con ordine in cui adiacenti nella sequenza selezionata.
L'oggetto alloca e libera la memoria per la sequenza che controlla tramite un oggetto archiviato di allocatore di tipo unordered_multimap::allocator_type.Tale oggetto allocatore deve avere la stessa interfaccia esterna come oggetto classe modello allocator.Si noti che l'oggetto memorizzato di allocatore non viene copiato quando l'oggetto contenitore è assegnato.
Requisiti
intestazione: <unordered_map>
Spazio dei nomi: deviazione standard