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.