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. |