Condividi tramite


unordered_map 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.All'interno di 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 (tempo lineare).Inoltre, inserendo un elemento non invalida iteratori e la rimozione di un elemento invalida solo gli iteratori che puntano all'elemento rimosso.

template<class Key,
    class Ty,
    class Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<std::pair<const Key, Ty> > >
    class unordered_map;

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 dell'allocatore.

Membri

Definizione del tipo

Descrizione

unordered_map::allocator_type

Il tipo di allocatore per gestire l'archiviazione.

unordered_map::const_iterator

Il tipo di iteratore costante per la sequenza selezionata.

unordered_map::const_local_iterator

Il tipo di iteratore costante del bucket della sequenza selezionata.

unordered_map::const_pointer

Il tipo di puntatore costante a un elemento.

unordered_map::const_reference

Il tipo di riferimento costante a un elemento.

unordered_map::difference_type

Il tipo di distanza con segno compreso tra due elementi.

unordered_map::hasher

Il tipo di funzione hash.

unordered_map::iterator

Il tipo di iteratore per la sequenza selezionata.

unordered_map::key_equal

Il tipo di funzione di confronto.

unordered_map::key_type

Il tipo di chiave di ordinamento.

unordered_map::local_iterator

Il tipo di iteratore del bucket della sequenza selezionata.

unordered_map::mapped_type

Il tipo di valore mappato associato a ogni chiave.

unordered_map::pointer

Il tipo di puntatore a un elemento.

unordered_map::reference

Il tipo di riferimento a un elemento.

unordered_map::size_type

Il tipo di distanza senza segno compreso tra due elementi.

unordered_map::value_type

il tipo di elemento.

funzione membro

Descrizione

hash_map::begin

cerca un elemento con la chiave specificata.

unordered_map::begin

Definisce l'inizio della sequenza controllata.

unordered_map::bucket

Ottiene il numero del bucket per un valore di chiave.

unordered_map::bucket_count

Ottiene il numero dei bucket.

unordered_map::bucket_size

ottiene la dimensione di un bucket.

hash_map::begin

Definisce l'inizio della sequenza controllata.

hash_map::begin

Definisce la fine della sequenza controllata.

unordered_map::clear

Rimuove tutti gli elementi.

unordered_map::count

Trova il numero di elementi che corrispondono a una chiave specificata.

hash_map::begin

Aggiunge un elemento costruito sul posto.

hash_map::begin

Aggiunge un elemento costruito sul posto, al suggerimento.

unordered_map::empty

Verifica se non sono presenti elementi presenti.

unordered_map::end

Definisce la fine della sequenza controllata.

unordered_map::equal_range

I trova variano che corrisponde a una chiave specificata.

unordered_map::erase

Rimuove gli elementi alle posizioni specificate.

unordered_map::find

Viene trovato un elemento che corrisponde alla chiave specificata.

unordered_map::get_allocator

Ottiene l'oggetto memorizzato dell'allocatore.

unordered_map::hash_function

Ottiene l'oggetto memorizzato di funzione hash.

unordered_map::insert

aggiunge gli elementi.

unordered_map::key_eq

Ottiene l'oggetto memorizzato di funzione di confronto.

unordered_map::load_factor

Conta gli elementi e l'altro per bucket.

unordered_map::max_bucket_count

Ottiene il numero massimo di bucket.

unordered_map::max_load_factor

Ottiene o imposta elementi massimo per bucket.

unordered_map::max_size

Ottiene la dimensione massima della sequenza selezionata.

unordered_map::rehash

Ricompila la tabella hash.

unordered_map::size

Conta il numero di elementi.

unordered_map::swap

Scambia il contenuto di due contenitori.

unordered_map::unordered_map

costruisce un oggetto contenitore.

Operatore

Descrizione

unordered_map::operator[]

Trova o inserisce un elemento con la chiave specificata.

hash_map::begin

Copia una tabella hash.

Note

l'oggetto ordina la sequenza che controlla chiamando due oggetti archiviati, un oggetto di funzione di confronto di tipo unordered_map::key_equal e un oggetto di funzione hash di tipo unordered_map::hasher.Si accede a quello in primo luogo archiviato chiamando la funzione membro unordered_map::key_eq(); e accedere al secondo oggetto archiviato chiamando la funzione membro unordered_map::hash_function().In particolare, per tutti 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_multimap Class, un oggetto di classe modello unordered_map assicurarsi che key_eq()(X, Y) è sempre false per tutti gli due elementi della sequenza selezionata.(Chiavi univoche.)

L'oggetto inoltre memorizza un fattore di carico massimo, che specifica il numero massimo medio desiderato di elementi per bucket.se inserendo le cause di un elemento unordered_map::load_factor() per superare il fattore di carico massimo, salti del contenitore il numero dei bucket e ricompilazioni la tabella hash in base alle necessità.

L'ordine effettivo di elementi della sequenza selezionata dipende dalla funzione hash, dalla funzione di confronto, dall'ordine di inserimento, dal fattore di carico massimo e dal numero corrente dei bucket.Non è possibile in genere stimare l'ordine degli elementi nella sequenza selezionata.È possibile sempre possibile raggruppare, tuttavia, che tutto il sottoinsieme di elementi con ordine equivalente è adiacente nella sequenza selezionata.

L'oggetto alloca e libera la memoria per la sequenza che controlla tramite un oggetto archiviato dell'allocatore di tipo unordered_map::allocator_type.Tale oggetto dell'allocatore deve avere la stessa interfaccia esterna come oggetto di classe modello allocator.Si noti che l'oggetto memorizzato dell'allocatore non viene copiato quando l'oggetto contenitore è assegnato.

Requisiti

intestazione: <unordered_map>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

<unordered_map>

unordered_map Class

Altre risorse

<unordered_map> membri