Biblioteca C ++: <mapa_desordenado>

Introducción a unordered_map

El mapa desordenado es una estructura de datos similar a un diccionario. Es una secuencia de pares (clave, valor), donde solo se asocia un valor único con cada clave única. A menudo se denomina matriz asociativa . Permite la recuperación rápida de elementos individuales en función de sus claves. También implementa el operador de acceso directo (operador de subíndice []) que permite el acceso directo al valor mapeado usando su valor clave como argumento.

El mapa desordenado no clasifica su elemento en ningún orden en particular con respecto a sus valores clave o asignados, sino que se organiza en depósitos según sus valores hash para permitir un acceso rápido a elementos individuales directamente por sus valores clave.

El mapa desordenado funciona mejor que el mapa al acceder a elementos individuales mediante sus claves. Pero para la iteración de rango, su rendimiento es considerablemente bajo.

Definición

A continuación se muestra la definición de std :: unordered_map del archivo de encabezado <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;

Parámetros

  • Key - Tipo de clave.

  • T - Tipo de valores mapeados.

  • Hash- Un tipo de objeto de función unaria que toma un objeto de tipo key como argumento y devuelve un valor único de tipo size_t basado en él.

  • Pred- Un predicado binario que tiene dos argumentos del tipo clave y devuelve un bool.

  • Alloc - Tipo de objeto asignador.

  • T puede ser sustituido por cualquier otro tipo de datos, incluido el tipo definido por el usuario.

Tipos de miembros

Los siguientes tipos de miembros se pueden utilizar como parámetros o tipos de retorno por funciones miembro.

No Señor. Tipos de miembros Definición
1 key_type Clave (primer parámetro de la plantilla)
2 mapped_type T (segundo parámetro de la plantilla)
3 tipo de valor par <const key_type, mapped_type>
4 picador El tercer parámetro de plantilla (por defecto es: hash <key_type>)
5 key_equal El cuarto parámetro de plantilla (predeterminado en: equal_to <key_type>)
6 allocator_type Alloc (quinto parámetro de la plantilla)
7 referencia tipo de valor&
8 referencia_const const value_type &
9 puntero allocator_traits <Alloc> :: puntero
10 puntero_const allocator_traits <Alloc> :: const_pointer
11 iterador Un iterador de avance a value_type value_type
12 const_iterator Un iterador de avance a const value_type value_type
13 local_iterator Un iterador de avance a value_type
14 const_local_iterator Un iterador de avance a const value_type
15 tipo_diferencia ptrdiff_t
dieciséis tipo de letra size_t

Funciones de <unordered_map>

A continuación se muestra una lista de todos los métodos del encabezado <unordered_map>.

Constructores

No Señor. Método y descripción
1 unordered_map :: unordered_map constructor predeterminado

Construye un unordered_map vacío con cero elementos.

2 unordered_map :: unordered_map copia constructor

Construye un unordered_map con copia de cada elemento presente en unordered_map existente.

3 unordered_map :: unordered_map mover constructor

Construye un unordered_map con el contenido de otro usando la semántica de movimiento.

4 unordered_map :: unordered_map constructor de rango

Construye un mapa_desordenado con tantos elementos como en el rango del primero al último .

5 unordered_map :: unordered_map initializer_list constructor

Construye un mapa_desordenado a partir de la lista de inicialización.

Incinerador de basuras

No Señor. Método y descripción
1 unordered_map :: ~ unordered_map

Destruye el objeto unordered_map al desasignar su memoria.

Funciones de miembro

No Señor. Método y descripción
1 unordered_map :: en

Devuelve una referencia al valor mapeado asociado con la clave k .

2 unordered_map :: iniciar iterador de contenedor

Devuelve un iterador que hace referencia al primer elemento del mapa.

3 unordered_map :: iniciar iterador de depósito

Devuelve un iterador que apunta al primer elemento de uno de sus depósitos.

4 unordered_map :: cubo

Devuelve el número de depósito donde se encuentra el elemento con la clave k .

5 unordered_map :: bucket_count

Devuelve el número de depósitos en el contenedor unordered_map.

6 unordered_map :: bucket_size

Devuelve el número de elementos presentes en el enésimo depósito.

7 unordered_map :: iterador de contenedor cbegin

Devuelve un iterador constante que se refiere al primer elemento de unordered_map.

8 unordered_map :: iterador de depósito cbegin

Devuelve un iterador constante que apunta al primer elemento de uno de sus depósitos.

9 unordered_map :: cend iterador de contenedor

Devuelve un iterador constante que apunta al elemento más allá del final de unordered_map.

10 unordered_map :: cend iterador de depósito

Devuelve un iterador constante que apunta al elemento pasado al final en uno de sus depósitos.

11 unordered_map :: claro

Destruye unordered_map eliminando todos los elementos y establece el tamaño de unordered_map en cero .

12 unordered_map :: cuenta

Devuelve el número de valores mapeados asociados con la clave k .

13 unordered_map :: emplace

Extiende el contenedor insertando un nuevo elemento.

14 unordered_map :: emplace_hint

Inserta un nuevo elemento en unordered_map usando hint como posición para el elemento.

15 unordered_map :: vacío

Comprueba si unordered_map está vacío o no.

dieciséis unordered_map :: final del iterador del contenedor

Devuelve un iterador que apunta al elemento más allá del final en unordered_map.

17 unordered_map :: final del iterador del depósito

Devuelve un iterador que apunta al elemento más allá del final en uno de sus depósitos.

18 unordered_map :: igual

Devuelve un rango de elementos que coincide con una clave específica.

19 unordered_map :: borrar versión de posición

Elimina un solo elemento de unordered_map de la posición .

20 unordered_map :: borrar versión de clave

Elimina el valor mapeado asociado con la clave k .

21 unordered_map :: borrar versión del rango

Elimina el rango de elementos del unordered_map.

22 unordered_map :: buscar

Encuentra un elemento asociado con la clave k .

23 unordered_map :: get_allocator

Devuelve un asignador asociado con unordered_map.

24 unordered_map :: hash_function

Calcula el objeto de función hash utilizado por el contenedor unordered_map.

25 unordered_map :: insertar

Extiende el contenedor insertando un nuevo elemento en unordered_map.

26 unordered_map :: insertar versión de movimiento

Extiende el contenedor insertando un nuevo elemento en unordered_map.

27 unordered_map :: insertar versión de sugerencia

Extiende el contenido insertando un nuevo elemento en unordered_map.

28 unordered_map :: insertar movimiento y versión de sugerencia

Extiende unordered_map insertando un nuevo elemento.

29 unordered_map :: insertar versión de rango

Extiende el contenedor insertando nuevos elementos en unordered_map.

30 unordered_map :: insertar versión de initializer_list

Extiende el mapa insertando un nuevo elemento de la lista de inicializadores.

31 unordered_map :: key_eq

Devuelve la función que compara la igualdad de claves.

32 unordered_map :: load_factor

Devuelve el factor de carga actual del contenedor unordered_map.

33 unordered_map :: max_bucket_count

Devuelve el número máximo de depósitos que puede tener el contenedor unordered_map.

34 unordered_map :: max_load_factor obtener versión

Devuelve el factor de carga máximo actual para el contenedor unordered_map.

35 unordered_map :: max_load_factor establece la versión

Asigna un nuevo factor de carga para el contenedor unordered_map.

36 unordered_map :: tamaño_máximo

Devuelve el número máximo de elementos que unordered_map puede contener.

37 unordered_map :: operator = copiar versión

Asigna nuevos contenidos al unordered_map reemplazando los antiguos y modifica el tamaño si es necesario.

38 unordered_map :: operator = mover versión

Mueve el contenido de un mapa_desordenado a otro y modifica el tamaño si es necesario.

39 unordered_map :: operator = initializer_list versión

Copie elementos de la lista de inicializadores a unordered_map.

40 unordered_map :: operador []

Si la clave k coincide con un elemento del contenedor, el método devuelve una referencia al elemento.

41 unordered_map :: operator [] mover versión

Si la clave k coincide con un elemento del contenedor, el método devuelve una referencia al elemento.

42 unordered_map :: rehash

Establece el número de cubos en el contenedor en n o más.

43 unordered_map :: reserve

Establece el número de cubos en el contenedor al más apropiado para contener al menos n elementos.

44 unordered_map :: tamaño

Devuelve el número de elementos presentes en unordered_map.

45 unordered_map :: intercambio

Intercambia el contenido del primer mapa_ desordenado con otro.

Funciones sobrecargadas de no miembros

No Señor. Método y descripción
1 unordered_map :: operador ==

Comprueba si dos unordered_maps son iguales o no.

2 mapa_desordenado :: operador! =

Comprueba si dos unordered_maps son iguales o no.

3 unordered_map :: intercambio

Intercambia el contenido del primer mapa_ desordenado con otro.

Introducción a unordered_multimap

Unordered_multimap es una estructura de datos similar a un diccionario. Es una secuencia de pares (clave, valor), donde diferentes elementos pueden tener claves equivalentes. Los elementos con claves equivalentes se agrupan en el mismo depósito y de tal manera que un iterador de rango igual puede iterar a través de todos ellos.

Unordered_multimap no clasifica su elemento en ningún orden en particular con respecto a sus valores clave o mapeados, sino que se organiza en depósitos dependiendo de sus valores hash para permitir un acceso rápido a elementos individuales directamente por sus valores clave.

Definición

A continuación se muestra la definición de std :: unordered_multimap del archivo de encabezado <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;

Parámetros

  • Key - Tipo de clave.

  • T - Tipo de valores mapeados.

  • Hash- Un tipo de objeto de función unaria que toma un objeto de tipo key como argumento y devuelve un valor único de tipo size_t basado en él.

  • Pred- Un predicado binario que tiene dos argumentos del tipo clave y devuelve un bool.

  • Alloc - Tipo de objeto asignador.

    T puede ser sustituido por cualquier otro tipo de datos, incluido el tipo definido por el usuario.

Tipos de miembros

Los siguientes tipos de miembros se pueden utilizar como parámetros o tipos de retorno por funciones miembro.

No Señor. Tipos de miembros Definición
1 key_type Clave (primer parámetro de la plantilla)
2 mapped_type T (segundo parámetro de la plantilla)
3 tipo de valor par <const key_type, mapped_type>
4 picador El tercer parámetro de plantilla (por defecto es: hash <key_type>)
5 key_equal El cuarto parámetro de plantilla (predeterminado en: equal_to <key_type>)
6 allocator_type Alloc (quinto parámetro de la plantilla)
7 referencia tipo de valor&
8 referencia_const const value_type &
9 puntero allocator_traits <Alloc> :: puntero
10 puntero_const allocator_traits <Alloc> :: const_pointer
11 iterador Un iterador de avance a value_type value_type
12 const_iterator Un iterador de avance a const value_type value_type
13 local_iterator Un iterador de avance a value_type
14 const_local_iterator Un iterador de avance a const value_type
15 tipo_diferencia ptrdiff_t
dieciséis tipo de letra size_t

Funciones de <unordered_multimap>

A continuación se muestra una lista de todos los métodos del encabezado <unordered_map>.

Constructores

No Señor. Método y descripción
1 unordered_multimap :: unordered_multimap () constructor predeterminado

Construye un unordered_multimap vacío con cero elementos.

2 unordered_multimap :: unordered_multimap () constructor de copia

Construye un unordered_multimap con copia de cada elemento presente en unordered_multimap existente.

3 unordered_multimap :: unordered_multimap () mover constructor

Construye un unordered_multimap con el contenido de otro utilizando la semántica de movimiento.

4 unordered_multimap :: unordered_multimap () constructor de rango

Construye un unordered_multimap con tantos elementos como en el rango del primero al último .

5 unordered_multimap :: unordered_multimap () constructor initializer_list

Construye un unordered_multimap a partir de la lista de inicialización.

Incinerador de basuras

No Señor. Método y descripción
1 unordered_multimap :: ~ unordered_multimap ()

Destruye el objeto unordered_multimap al desasignar su memoria.

Funciones de miembro

No Señor. Método y descripción
1 unordered_multimap :: begin () iterador de contenedor

Devuelve un iterador que hace referencia al primer elemento de unordered_mulitmap.

2 unordered_multimap :: begin () iterador de depósito

Devuelve un iterador que apunta al primer elemento de uno de sus depósitos.

3 unordered_multimap :: bucket ()

Devuelve el número de depósito donde se encuentra el elemento con la clave k .

4 unordered_multimap :: bucket_count ()

Devuelve el número de depósitos presentes en el contenedor unordered_multimap.

5 unordered_multimap :: bucket_size ()

Devuelve el número de elementos presentes en el enésimo depósito.

6 unordered_multimap :: cbegin () iterador de contenedor

Devuelve un iterador constante que se refiere al primer elemento de unordered_multimap.

7 unordered_multimap :: cbegin () iterador de depósito

Devuelve un iterador constante que apunta al primer elemento de uno de sus depósitos.

8 unordered_multimap :: cend () iterador de contenedor

Devuelve un iterador constante que apunta al elemento pasado-final del unordered_multimap.

9 unordered_multimap :: cend () iterador de depósito

Devuelve un iterador constante que apunta al elemento pasado al final en uno de sus depósitos.

10 unordered_multimap :: clear ()

Destruye unordered_multimap eliminando todos los elementos y establece el tamaño de unordered_multimap en cero .

11 unordered_multimap :: count ()

Devuelve el número de valores mapeados asociados con la clave k .

12 unordered_multimap :: emplace ()

Extiende el contenedor insertando un nuevo elemento.

13 unordered_multimap :: emplace_hint ()

Inserta un nuevo elemento en un unordered_multimap usando hint como posición para el elemento.

14 unordered_multimap :: vacío ()

Comprueba si unordered_multimap está vacío o no.

15 unordered_multimap :: end () iterador de contenedor

Devuelve un iterador que apunta al elemento pasado-final en unordered_multimap.

dieciséis unordered_multimap :: end () iterador de depósito

Devuelve un iterador que apunta al elemento más allá del final en uno de sus depósitos.

17 unordered_multimap :: equal_range ()

Devuelve un rango de elementos que coincide con una clave específica.

18 unordered_multimap :: erase () posición versión

Elimina un solo elemento de unordered_multimap de su posición .

19 unordered_multimap :: erase () versión de la clave

Elimina el valor mapeado asociado con la clave k .

20 unordered_multimap :: erase () versión del rango

Elimina el rango de elementos del unordered_multimap.

21 unordered_multimap :: find ()

Encuentra un elemento asociado con la clave k .

22 unordered_multimap :: get_allocator ()

Devuelve un asignador asociado con unordered_multimap.

23 unordered_multimap :: hash_function ()

Calcula el objeto de función hash utilizado por el contenedor unordered_multimap.

24 unordered_multimap :: insert () valor versión

Extiende el contenedor insertando un nuevo elemento en unordered_multimap.

25 unordered_multimap :: insert () mover versión

Extiende unordered_multimap insertando un nuevo elemento.

26 unordered_multimap :: insert () versión de sugerencia

Extiende el contenedor insertando un nuevo elemento en unordered_multimap.

27 unordered_multimap :: insert () sugerencia mover versión

Extiende el contenedor insertando un nuevo elemento en unordered_multimap usando la semántica de movimiento.

28 unordered_multimap :: insert () rango versión

Extiende el contenedor insertando nuevos elementos en unordered_multimap.

29 unordered_multimap :: insert () versión de initializer_list

Extiende unordered_multimap insertando un nuevo elemento de la lista de inicializadores.

30 unordered_multimap :: key_eq ()

Devuelve la función que compara la igualdad de claves.

31 unordered_multimap :: load_factor ()

Devuelve el factor de carga actual del contenedor unordered_multimap.

32 unordered_multimap :: max_bucket_count ()

Devuelve el número máximo de depósitos que puede tener el contenedor unordered_multimap.

33 unordered_multimap :: max_load_factor () obtener versión

Devuelve el factor de carga máximo actual para el contenedor unordered_multimap.

34 unordered_multimap :: max_load_factor () establecer versión

Asigna un nuevo factor de carga para el contenedor unordered_multimap.

35 unordered_multimap :: tamaño_máx ()

Devuelve el número máximo de elementos que unordered_multimap puede contener.

36 unordered_multimap :: operator = () copiar versión

Asigna nuevos contenidos al unordered_multimap reemplazando los antiguos y modifica el tamaño si es necesario.

37 unordered_multimap :: operator = () mover versión

Mueve el contenido de un unordered_multimap a otro y modifica el tamaño si es necesario.

38 unordered_multimap :: operator = () versión de initializer_list

Copie elementos de la lista de inicializadores a unordered_multimap.

39 unordered_multimap :: rehash ()

Establece el número de cubos en el contenedor en n o más.

40 unordered_multimap :: reserve ()

Establece el número de cubos en el contenedor al más apropiado para contener al menos n elementos.

41 unordered_multimap :: tamaño ()

Devuelve el número de elementos presentes en unordered_multimap.

42 unordered_multimap :: swap ()

Intercambia el contenido del primer unordered_multimap con otro.

Funciones sobrecargadas de no miembros

No Señor. Método y descripción
1 unordered_multimap :: operador == ()

Comprueba si dos unordered_multimaps son iguales o no.

2 unordered_multimap :: operador! = ()

Comprueba si dos unordered_multimaps son iguales o no.

3 unordered_multimap :: swap ()

Intercambia el contenido del primer unordered_multimap con otro.