Libreria C ++ - <unordered_map>
Introduzione a unordered_map
La mappa non ordinata è una struttura dati simile a un dizionario. È una sequenza di coppie (chiave, valore), in cui un solo valore è associato a ciascuna chiave univoca. Viene spesso definito array associativo . Consente il recupero rapido dei singoli elementi in base alle loro chiavi. Implementa anche l' operatore di accesso diretto (operatore pedice []) che consente l'accesso diretto al valore mappato utilizzando il suo valore chiave come argomento.
La mappa non ordinata non ordina il suo elemento in un ordine particolare rispetto alla chiave o ai valori mappati, invece si organizza in bucket a seconda dei loro valori hash per consentire un accesso rapido ai singoli elementi direttamente dai loro valori chiave.
La mappa non ordinata funziona meglio della mappa mentre accede ai singoli elementi tramite le loro chiavi. Ma per l'iterazione della gamma le loro prestazioni sono considerevolmente basse.
Definizione
Di seguito è riportata la definizione di std :: unordered_map dal file di intestazione <unordered_map>
template < class Key,
class T,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Alloc = allocator< pair<const Key,T> >
> class unordered_map;
Parametri
Key - Tipo di chiave.
T - Tipo di valori mappati.
Hash- Un tipo di oggetto funzione unario che accetta un oggetto di tipo chiave come argomento e restituisce un valore univoco di tipo size_t basato su di esso.
Pred- Un predicato binario quello che due argomenti del tipo di chiave e restituisce un bool.
Alloc - Tipo di oggetto allocatore.
T può essere sostituito da qualsiasi altro tipo di dati incluso il tipo definito dall'utente.
Tipi di membri
I seguenti tipi di membro possono essere usati come parametri o tipo restituito dalle funzioni membro.
Sr.No. | Tipi di membri | Definizione |
---|---|---|
1 | tipo_chiave | Chiave (primo parametro del modello) |
2 | mapped_type | T (Secondo parametro del modello) |
3 | value_type | coppia <const key_type, mapped_type> |
4 | hasher | Il terzo parametro del modello (il valore predefinito è: hash <key_type>) |
5 | key_equal | Il quarto parametro del modello (predefinito: equal_to <key_type>) |
6 | allocator_type | Alloc (quinto parametro del modello) |
7 | riferimento | value_type & |
8 | const_reference | const value_type & |
9 | puntatore | allocator_traits <Alloc> :: puntatore |
10 | const_pointer | allocator_traits <Alloc> :: const_pointer |
11 | iteratore | Un iteratore in avanti per value_type value_type |
12 | const_iterator | Un iteratore in avanti per const value_type value_type |
13 | local_iterator | Un iteratore in avanti per value_type |
14 | const_local_iterator | Un iteratore in avanti per const value_type |
15 | differenza_tipo | ptrdiff_t |
16 | size_type | size_t |
Funzioni da <unordered_map>
Di seguito è riportato un elenco di tutti i metodi dall'intestazione <unordered_map>.
Costruttori
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_map :: unordered_map costruttore predefinito Costruisce un vuoto unordered_map con zero elementi. |
2 | unordered_map :: unordered_map costruttore di copie Costruisce un unordered_map con copia di ogni elemento presente in unordered_map esistente. |
3 | unordered_map :: unordered_map costruttore di mosse Costruisce un unordered_map con il contenuto di altri usando la semantica di spostamento. |
4 | unordered_map :: costruttore di intervalli unordered_map Costruisce un unordered_map con maggior numero di elementi nella gamma di prima per ultimo . |
5 | unordered_map :: unordered_map initializer_list costruttore Costruisce un unordered_map dall'elenco di inizializzazione. |
Distruttore
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_map :: ~ unordered_map Distrugge l'oggetto unordered_map deallocando la sua memoria. |
Funzioni dei membri
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_map :: at Restituisce un riferimento al valore mappato associato alla chiave k . |
2 | unordered_map :: inizia l' iteratore del contenitore Restituisce un iteratore che fa riferimento al primo elemento della mappa. |
3 | unordered_map :: inizia l' iteratore del bucket Restituisce un iteratore che punta al primo elemento in uno dei suoi bucket. |
4 | unordered_map :: bucket Restituisce il numero di bucket in cui si trova l'elemento con la chiave k . |
5 | unordered_map :: bucket_count Restituisce il numero di bucket nel contenitore unordered_map. |
6 | unordered_map :: bucket_size Restituisce il numero di elementi presenti nell'ennesimo bucket. |
7 | unordered_map :: cbegin container iterator Restituisce un iteratore costante che fa riferimento al primo elemento di unordered_map. |
8 | unordered_map :: iteratore bucket cbegin Restituisce un iteratore costante che punta al primo elemento in uno dei suoi bucket. |
9 | unordered_map :: cend iteratore del contenitore Restituisce un iteratore costante che punta all'elemento oltre la fine di unordered_map. |
10 | unordered_map :: cend bucket iterator Restituisce un iteratore costante che punta all'elemento oltre la fine in uno dei suoi bucket. |
11 | unordered_map :: clear Distrugge unordered_map rimuovendo tutti gli elementi e imposta la dimensione di unordered_map su zero . |
12 | unordered_map :: count Restituisce il numero di valori mappati associati alla chiave k . |
13 | unordered_map :: emplace Estende il contenitore inserendo un nuovo elemento. |
14 | unordered_map :: emplace_hint Inserisce un nuovo elemento in unordered_map utilizzando il suggerimento come posizione per l'elemento. |
15 | unordered_map :: vuoto Verifica se unordered_map è vuoto o meno. |
16 | unordered_map :: end container iterator Restituisce un iteratore che punta all'elemento oltre la fine in unordered_map. |
17 | unordered_map :: end bucket iterator Restituisce un iteratore che punta all'elemento oltre la fine in uno dei suoi bucket. |
18 | unordered_map :: uguale Restituisce un intervallo di elementi che corrisponde a una chiave specifica. |
19 | unordered_map :: cancella la versione della posizione Rimuove un singolo elemento di unordered_map dalla posizione . |
20 | unordered_map :: cancella la versione della chiave Rimuove il valore mappato associato alla chiave k . |
21 | unordered_map :: cancella la versione dell'intervallo Rimuove l'intervallo di elementi da unordered_map. |
22 | unordered_map :: trova Trova un elemento associato alla chiave k . |
23 | unordered_map :: get_allocator Restituisce un allocatore associato a unordered_map. |
24 | unordered_map :: hash_function Calcola l'oggetto funzione hash utilizzato dal contenitore unordered_map. |
25 | unordered_map :: insert Estende il contenitore inserendo un nuovo elemento in unordered_map. |
26 | unordered_map :: inserisce la versione dello spostamento Estende il contenitore inserendo un nuovo elemento in unordered_map. |
27 | unordered_map :: inserire la versione del suggerimento Estende il contenuto inserendo un nuovo elemento in unordered_map. |
28 | unordered_map :: inserisce la versione di spostamento e suggerimento Estende unordered_map inserendo un nuovo elemento. |
29 | unordered_map :: inserisce la versione dell'intervallo Estende il container inserendo nuovi elementi in unordered_map. |
30 | unordered_map :: inserire la versione dell'elenco_inizializzatore Estende la mappa inserendo un nuovo elemento dall'elenco degli inizializzatori. |
31 | unordered_map :: key_eq Restituisce la funzione che confronta le chiavi per l'uguaglianza. |
32 | unordered_map :: load_factor Restituisce il fattore di carico corrente del contenitore unordered_map. |
33 | unordered_map :: max_bucket_count Restituisce il numero massimo di bucket che il contenitore unordered_map può avere. |
34 | unordered_map :: max_load_factor ottiene la versione Restituisce il fattore di carico massimo corrente per il contenitore unordered_map. |
35 | unordered_map :: max_load_factor imposta la versione Assegna un nuovo fattore di carico per il contenitore unordered_map. |
36 | unordered_map :: max_size Restituisce il numero massimo di elementi che può essere trattenuto da unordered_map. |
37 | unordered_map :: operator = copia versione Assegna nuovi contenuti a unordered_map sostituendo quelli vecchi e modifica la dimensione se necessario. |
38 | unordered_map :: operator = sposta versione Sposta il contenuto di un unordered_map in un altro e modifica le dimensioni se necessario. |
39 | unordered_map :: operator = initializer_list version Copia gli elementi dall'elenco degli inizializzatori a unordered_map. |
40 | unordered_map :: operator [] Se la chiave k corrisponde a un elemento nel contenitore, il metodo restituisce un riferimento all'elemento. |
41 | unordered_map :: operator [] sposta la versione Se la chiave k corrisponde a un elemento nel contenitore, il metodo restituisce un riferimento all'elemento. |
42 | unordered_map :: rehash Imposta il numero di bucket nel contenitore su n o più. |
43 | unordered_map :: riserva Imposta il numero di bucket nel contenitore sul più appropriato per contenere almeno n elementi. |
44 | unordered_map :: size Restituisce il numero di elementi presenti in unordered_map. |
45 | unordered_map :: swap Scambia il contenuto di first unordered_map con un altro. |
Funzioni di sovraccarico non membro
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_map :: operator == Verifica se due unordered_maps sono uguali o meno. |
2 | unordered_map :: operator! = Verifica se due unordered_maps sono uguali o meno. |
3 | unordered_map :: swap Scambia il contenuto di first unordered_map con un altro. |
Introduzione a unordered_multimap
Unordered_multimap è una struttura dati simile a un dizionario. È una sequenza di coppie (chiave, valore), in cui elementi diversi possono avere chiavi equivalenti. Gli elementi con chiavi equivalenti sono raggruppati insieme nello stesso bucket e in modo tale che un iteratore equal_range possa iterarli tutti.
Unordered_multimap non ordina il suo elemento in un ordine particolare rispetto ai valori chiave o mappati, invece si organizza in bucket a seconda dei loro valori hash per consentire un accesso rapido ai singoli elementi direttamente dai loro valori chiave.
Definizione
Di seguito è riportata la definizione di std :: unordered_multimap dal file di intestazione <unordered_map>
template < class Key,
class T,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Alloc = allocator< pair<const Key,T> >
> class unordered_multimap;
Parametri
Key - Tipo di chiave.
T - Tipo di valori mappati.
Hash- Un tipo di oggetto funzione unario che accetta un oggetto di tipo chiave come argomento e restituisce un valore univoco di tipo size_t basato su di esso.
Pred- Un predicato binario quello che due argomenti del tipo di chiave e restituisce un bool.
Alloc - Tipo di oggetto allocatore.
T può essere sostituito da qualsiasi altro tipo di dati incluso il tipo definito dall'utente.
Tipi di membri
I seguenti tipi di membro possono essere usati come parametri o tipo restituito dalle funzioni membro.
Sr.No. | Tipi di membri | Definizione |
---|---|---|
1 | tipo_chiave | Chiave (primo parametro del modello) |
2 | mapped_type | T (Secondo parametro del modello) |
3 | value_type | coppia <const key_type, mapped_type> |
4 | hasher | Il terzo parametro del modello (il valore predefinito è: hash <key_type>) |
5 | key_equal | Il quarto parametro del modello (predefinito: equal_to <key_type>) |
6 | allocator_type | Alloc (quinto parametro del modello) |
7 | riferimento | value_type & |
8 | const_reference | const value_type & |
9 | puntatore | allocator_traits <Alloc> :: puntatore |
10 | const_pointer | allocator_traits <Alloc> :: const_pointer |
11 | iteratore | Un iteratore in avanti per value_type value_type |
12 | const_iterator | Un iteratore in avanti per const value_type value_type |
13 | local_iterator | Un iteratore in avanti per value_type |
14 | const_local_iterator | Un iteratore in avanti per const value_type |
15 | differenza_tipo | ptrdiff_t |
16 | size_type | size_t |
Funzioni da <unordered_multimap>
Di seguito è riportato un elenco di tutti i metodi dall'intestazione <unordered_map>.
Costruttori
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_multimap :: unordered_multimap () costruttore predefinito Costruisce un vuoto unordered_multimap con zero elementi. |
2 | unordered_multimap :: unordered_multimap () costruttore di copie Costruisce un unordered_multimap con copia di ogni elemento presente in unordered_multimap esistente. |
3 | unordered_multimap :: unordered_multimap () costruttore di mosse Costruisce un unordered_multimap con il contenuto di other usando la semantica di spostamento. |
4 | unordered_multimap :: costruttore di intervalli unordered_multimap () Costruisce un unordered_multimap con maggior numero di elementi nella gamma di prima per ultimo . |
5 | unordered_multimap :: unordered_multimap () initializer_list costruttore Costruisce un unordered_multimap dall'elenco di inizializzazione. |
Distruttore
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_multimap :: ~ unordered_multimap () Distrugge l'oggetto unordered_multimap deallocandone la memoria. |
Funzioni dei membri
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_multimap :: begin () iteratore del contenitore Restituisce un iteratore che fa riferimento al primo elemento di unordered_mulitmap. |
2 | iteratore bucket unordered_multimap :: begin () Restituisce un iteratore che punta al primo elemento in uno dei suoi bucket. |
3 | unordered_multimap :: bucket () Restituisce il numero di bucket in cui si trova l'elemento con la chiave k . |
4 | unordered_multimap :: bucket_count () Restituisce il numero di bucket presenti nel contenitore unordered_multimap. |
5 | unordered_multimap :: bucket_size () Restituisce il numero di elementi presenti nell'ennesimo bucket. |
6 | unordered_multimap :: cbegin () iteratore del contenitore Restituisce un iteratore costante che fa riferimento al primo elemento di unordered_multimap. |
7 | iteratore bucket unordered_multimap :: cbegin () Restituisce un iteratore costante che punta al primo elemento in uno dei suoi bucket. |
8 | iteratore contenitore unordered_multimap :: cend () Restituisce un iteratore costante che punta all'elemento oltre la fine di unordered_multimap. |
9 | iteratore bucket unordered_multimap :: cend () Restituisce un iteratore costante che punta all'elemento oltre la fine in uno dei suoi bucket. |
10 | unordered_multimap :: clear () Distrugge unordered_multimap rimuovendo tutti gli elementi e imposta la dimensione di unordered_multimap su zero . |
11 | unordered_multimap :: count () Restituisce il numero di valori mappati associati alla chiave k . |
12 | unordered_multimap :: emplace () Estende il contenitore inserendo un nuovo elemento. |
13 | unordered_multimap :: emplace_hint () Inserisce un nuovo elemento in un unordered_multimap utilizzando il suggerimento come posizione per l'elemento. |
14 | unordered_multimap :: empty () Verifica se unordered_multimap è vuoto o meno. |
15 | iteratore contenitore unordered_multimap :: end () Restituisce un iteratore che punta all'elemento past-the-end in unordered_multimap. |
16 | iteratore bucket unordered_multimap :: end () Restituisce un iteratore che punta all'elemento oltre la fine in uno dei suoi bucket. |
17 | unordered_multimap :: equal_range () Restituisce un intervallo di elementi che corrisponde a una chiave specifica. |
18 | unordered_multimap :: erase () position version Rimuove un singolo elemento di unordered_multimap dalla posizione . |
19 | versione della chiave unordered_multimap :: erase () Rimuove il valore mappato associato alla chiave k . |
20 | unordered_multimap :: erase () range version Rimuove l'intervallo di elementi da unordered_multimap. |
21 | unordered_multimap :: find () Trova un elemento associato alla chiave k . |
22 | unordered_multimap :: get_allocator () Restituisce un allocatore associato a unordered_multimap. |
23 | unordered_multimap :: hash_function () Calcola l'oggetto funzione hash utilizzato dal contenitore unordered_multimap. |
24 | unordered_multimap :: insert () value version Estende il contenitore inserendo un nuovo elemento in unordered_multimap. |
25 | unordered_multimap :: insert () sposta la versione Estende unordered_multimap inserendo un nuovo elemento. |
26 | unordered_multimap :: insert () hint version Estende il contenitore inserendo un nuovo elemento in unordered_multimap. |
27 | unordered_multimap :: insert () suggerimento sposta versione Estende il contenitore inserendo un nuovo elemento in unordered_multimap utilizzando la semantica di spostamento. |
28 | unordered_multimap :: insert () range version Estende il contenitore inserendo nuovi elementi in unordered_multimap. |
29 | unordered_multimap :: insert () initializer_list version Estende unordered_multimap inserendo un nuovo elemento dall'elenco degli inizializzatori. |
30 | unordered_multimap :: key_eq () Restituisce la funzione che confronta le chiavi per l'uguaglianza. |
31 | unordered_multimap :: load_factor () Restituisce il fattore di carico corrente del contenitore unordered_multimap. |
32 | unordered_multimap :: max_bucket_count () Restituisce il numero massimo di bucket che il contenitore unordered_multimap può avere. |
33 | unordered_multimap :: max_load_factor () ottiene la versione Restituisce il fattore di carico massimo corrente per il contenitore unordered_multimap. |
34 | unordered_multimap :: max_load_factor () imposta la versione Assegna un nuovo fattore di carico per il contenitore unordered_multimap. |
35 | unordered_multimap :: max_size () Restituisce il numero massimo di elementi che può essere tenuto da unordered_multimap. |
36 | unordered_multimap :: operator = () copia versione Assegna nuovi contenuti a unordered_multimap sostituendo quelli vecchi e modifica la dimensione se necessario. |
37 | unordered_multimap :: operator = () sposta versione Sposta il contenuto di un unordered_multimap in un altro e modifica le dimensioni se necessario. |
38 | unordered_multimap :: operator = () initializer_list version Copia gli elementi dall'elenco degli inizializzatori a unordered_multimap. |
39 | unordered_multimap :: rehash () Imposta il numero di bucket nel contenitore su n o più. |
40 | unordered_multimap :: reserve () Imposta il numero di bucket nel contenitore sul più appropriato per contenere almeno n elementi. |
41 | unordered_multimap :: size () Restituisce il numero di elementi presenti in unordered_multimap. |
42 | unordered_multimap :: swap () Scambia il contenuto di first unordered_multimap con un altro. |
Funzioni di sovraccarico non membro
Sr.No. | Metodo e descrizione |
---|---|
1 | unordered_multimap :: operator == () Verifica se due unordered_multimaps sono uguali o meno. |
2 | unordered_multimap :: operator! = () Verifica se due unordered_multimaps sono uguali o meno. |
3 | unordered_multimap :: swap () Scambia il contenuto di first unordered_multimap con un altro. |