Los mapas son contenedores asociativos que almacenan elementos de forma mapeada. Cada elemento tiene un valor clave y un valor asignado. No hay dos valores asignados que puedan tener los mismos valores clave.
std::map es la plantilla de clase para contenedores de mapas y se define dentro del archivo de encabezado.
Funciones básicas de miembros std::map
Algunas funciones básicas asociadas con std::map son:
- comenzar() – Devuelve un iterador al primer elemento del mapa.
- fin() – Devuelve un iterador al elemento teórico que sigue al último elemento del mapa.
- tamaño() – Devuelve el número de elementos del mapa.
- tamaño máximo() – Devuelve el número máximo de elementos que el mapa puede contener.
- vacío() – Devuelve si el mapa está vacío.
- inserción de par (valor clave, valor de mapa) – Agrega un nuevo elemento al mapa.
- borrar (posición del iterador) – Elimina el elemento en la posición señalada por el iterador.
- borrar (const g) – Elimina el valor clave 'g' del mapa.
- claro() – Elimina todos los elementos del mapa.
Ejemplos de std::mapa
Los siguientes ejemplos muestran cómo realizar operaciones básicas en contenedores de mapas.
Ejemplo 1: función comenzar() y finalizar()
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>p.f.; // Inserta algunos valores en el mapa mp['one'] = 1; mp['dos'] = 2; mp['tres'] = 3; // Obtener un iterador que apunte al primer elemento del // mapa mapint>::iterator it = mp.begin(); // Iterar a través del mapa e imprimir los elementos while (it!= mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
educación de cassidy hutchinson
>Producción
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Complejidad del método anterior:
Complejidad del tiempo: O(n) donde n es el tamaño del mapa.
Espacio Auxiliar: En)
Ejemplo 2: función tamaño()
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mapa; // Inserta algunos valores en el mapa map['one'] = 1; mapa['dos'] = 2; mapa['tres'] = 3; // Imprime el tamaño del mapa cout<< 'Size of map: ' << map.size() << endl; return 0; }> |
ubicación df
>
>Producción
Size of map: 3>
Complejidad del método anterior:
Complejidad del tiempo: O(1).
Ejemplo 3: Implementación del mapa
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iterador itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Producción
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Complejidad del método anterior:
Complejidad del tiempo: O(n log(n)) ya que n es el tamaño del mapa
Espacio auxiliar: En)
Ejemplo 4: Implementación de un mapa de números enteros
C++
convertir cadena a entero
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mapa; // Inserta algunos valores en el mapa map['one'] = 1; mapa['dos'] = 2; mapa['tres'] = 3; // Imprime los valores en el mapa cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) {salir<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
tabla de verdad del sumador completo
>Producción
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Lista de todas las funciones de std::map
La siguiente tabla contiene todas las funciones definidas dentro de la clase std::map.
| Función | Definición |
|---|---|
| mapa::insertar() | Insertar elementos con una clave particular en el contenedor del mapa –> O(log n) |
| mapa:: contar() | Devuelve el número de coincidencias con el elemento con valor-clave 'g' en el mapa. –> O(log n) |
| mapa igual_rango() | Devuelve un iterador de pares. El par se refiere a los límites de un rango que incluye todos los elementos del contenedor que tienen una clave equivalente a k. |
| borrar mapa() | Se utiliza para borrar elementos del contenedor –> O(log n) |
| renderizar mapa() | Devuelve un iterador inverso que apunta al elemento teórico justo antes del primer par clave-valor en el mapa (que se considera su extremo inverso). |
| mapa rbegin()
| Devuelve un iterador inverso que apunta al último elemento del mapa. |
| encontrar mapa() | Devuelve un iterador al elemento con valor clave 'g' en el mapa si se encuentra; de lo contrario, devuelve el iterador al final. |
| asignar crbegin() y crend() | crbegin() devuelve un iterador inverso constante que hace referencia al último elemento en el contenedor del mapa. crend() devuelve un iterador inverso constante que apunta al elemento teórico antes del primer elemento en el mapa. |
| mapear cbegin() y cend() | cbegin() devuelve un iterador constante que hace referencia al primer elemento en el contenedor del mapa. cend() devuelve un iterador constante que apunta al elemento teórico que sigue al último elemento en el mapa múltiple. |
| emplazar mapa() | Inserta la clave y su elemento en el contenedor del mapa. |
| mapa max_size() | Devuelve el número máximo de elementos que puede contener un contenedor de mapa –> O(1) |
| mapa límite_superior() | Devuelve un iterador al primer elemento que es equivalente al valor asignado con valor-clave 'g' o definitivamente irá después del elemento con valor-clave 'g' en el mapa. |
| operador de mapa = | Asigna el contenido de un contenedor a un contenedor diferente, reemplazando su contenido actual. |
| mapa límite_inferior() | Devuelve un iterador al primer elemento que es equivalente al valor asignado con valor-clave 'g' o definitivamente no irá antes del elemento con valor-clave 'g' en el mapa -> O(log n) |
| mapa emplace_hint() | Inserta la clave y su elemento en el contenedor del mapa con una pista determinada. organización y arquitectura de la computadora |
| mapa valor_comp() | Devuelve el objeto que determina cómo se ordenan los elementos en el mapa ('<' por defecto). |
| mapa key_comp() | Devuelve el objeto que determina cómo se ordenan los elementos en el mapa ('<' por defecto). |
| Tamaño de mapa() | Devuelve el número de elementos del mapa. |
| mapa::vacío() | Devuelve si el mapa está vacío. |
| mapa::comienzo() y final() | comenzar() devuelve un iterador al primer elemento del mapa. end() devuelve un iterador al elemento teórico que sigue al último elemento en el mapa |
| mapa::operador[] | Este operador se utiliza para hacer referencia al elemento presente en la posición dada dentro del operador. |
| mapa::claro() | Elimina todos los elementos del mapa. |
| mapa::en() y mapa::intercambio() | La función at() se utiliza para devolver la referencia al elemento asociado con la clave k. La función swap() se utiliza para intercambiar el contenido de dos mapas, pero los mapas deben ser del mismo tipo, aunque los tamaños pueden diferir. |