Los mapas son parte de C++ STL (Biblioteca de plantillas estándar). Los mapas son contenedores asociativos que almacenan pares clave-valor ordenados, en los que cada clave es única y se puede insertar o eliminar, pero no se puede modificar. Los valores asociados con las claves se pueden cambiar.
Por ejemplo: Un mapa de empleados donde el ID del empleado es la clave y el nombre es el valor se puede representar como:
milivecricket
Llaves | Valores |
---|---|
101 | nikita |
102 | Robin |
103 | Profundo |
104 | John |
Sintaxis
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
Parámetro
llave: El tipo de datos clave que se almacenará en el mapa.
tipo: El tipo de datos del valor que se almacenará en el mapa.
composición de la relación
comparar: Una clase de comparación que toma dos argumentos del mismo tipo bool y devuelve un valor. Este argumento es opcional y el predicado binario less es el valor predeterminado.
asignar: Tipo de objeto asignador. Este argumento es opcional y el valor predeterminado es asignador.
Creando un mapa
Los mapas se pueden crear fácilmente utilizando la siguiente declaración:
typedef pair value_type;
El formulario anterior se utilizará para crear un mapa con clave de tipo Tipo de clave y valor del tipo tipo de valor. Una cosa importante es que la clave de un mapa y los valores correspondientes siempre se insertan como un par; no se puede insertar solo la clave o solo un valor en un mapa.
arquitectura java
Ejemplo 1
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
Producción:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Funciones de los miembros
A continuación se muestra la lista de todas las funciones miembro del mapa:
Constructor/Destructor
Funciones | Descripción |
---|---|
constructores | Construir mapa |
destructores | Destructor de mapas |
operador= | Copie elementos del mapa a otro mapa. |
Iteradores
Funciones | Descripción |
---|---|
comenzar | Devuelve un iterador que apunta al primer elemento del mapa. |
comenzar | Devuelve un iterador constante que apunta al primer elemento del mapa. |
fin | Devuelve un iterador que apunta al final del pasado. |
algunos | Devuelve un iterador constante que apunta al final del pasado. |
comenzar | Devuelve un iterador inverso que apunta al final. |
marcas | Devuelve un iterador inverso que apunta al principio. |
comenzar | Devuelve un iterador inverso constante que apunta al final. |
creer | Devuelve un iterador inverso constante que apunta al principio. |
Capacidad
Funciones | Descripción |
---|---|
vacío | Devuelve verdadero si el mapa está vacío. |
tamaño | Devuelve el número de elementos del mapa. |
tamaño máximo | Devuelve el tamaño máximo del mapa. |
Acceso a elementos
Funciones | Descripción |
---|---|
operador[] | Recupera el elemento con la clave dada. |
en | Recupera el elemento con la clave dada. |
Modificadores
Funciones | Descripción |
---|---|
insertar | Insertar elemento en el mapa. |
borrar | Borrar elementos del mapa. |
intercambio | Intercambia el contenido del mapa. |
claro | Elimina todos los elementos del mapa. |
ubicación | Construya e inserte los nuevos elementos en el mapa. |
emplace_hint | Construya e inserte nuevos elementos en el mapa mediante sugerencias. |
Observadores
Funciones | Descripción |
---|---|
clave_comp | Devuelve una copia del objeto de comparación clave. |
valor_comp | Devuelve una copia del objeto de comparación de valores. |
Operaciones
Funciones | Descripción |
---|---|
encontrar | Busque un elemento con la clave dada. |
contar | Obtiene el número de elementos que coinciden con la clave dada. |
límite inferior | Devuelve un iterador al límite inferior. |
límite_superior | Devuelve un iterador al límite superior. |
rango_igual | Devuelve el rango de elementos que coinciden con la clave dada. |
asignador
Funciones | Descripción |
---|---|
get_allocador | Devuelve un objeto asignador que se utiliza para construir el mapa. |
Funciones sobrecargadas para no miembros
Funciones | Descripción |
---|---|
operador== | Comprueba si los dos mapas son iguales o no. |
operador!= | Comprueba si los dos mapas son iguales o no. |
operador< | Comprueba si el primer mapa es menor que el otro o no. |
operador<=< td> | Comprueba si el primer mapa es menor o igual que otro o no. | =<>
operador> | Comprueba si el primer mapa es mayor que el otro o no. |
operador>= | Comprueba si el primer mapa es mayor que el otro o no. |
intercambio() | Intercambia el elemento de dos mapas. |