logo

Mapa en la biblioteca de plantillas estándar de C++ (STL)

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 gquiz2(gquiz1.begin(), gquiz1.end()); // imprime todos los elementos del mapa gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

>

>

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.