map- una clase de plantilla estándar de la biblioteca del lenguaje de programación C++, diseñada para implementar la abstracción de visualización en forma de un contenedor asociativo ordenado . Su declaración se encuentra en el espacio de nombres del archivo de encabezado <mapa> de la biblioteca STL [1] [2] [3] . En el contexto del acceso a sus elementos, una clase se considera como una matriz asociativa , en la que los valores clave desempeñan el papel de índices [4] , lo que permite establecer una analogía con un diccionario o una guía telefónica [ 5] . stdmap
Los elementos de una clase mapson pares de claves y sus correspondientes valores. El almacenamiento de elementos de clase se mapimplementa de forma ordenada en función de un criterio de clasificación que se aplica por valores clave. De forma predeterminada, el criterio de clasificación lo establece el operador operator< [6] . A diferencia de un contenedor set, una clase mapproporciona a su usuario operator [][1] . Para controlar la gestión de la memoria, es posible conectar versiones personalizadas de los asignadores de memoria . Para la implementación práctica de la clase mapse suelen utilizar árboles binarios de búsqueda [7] .
Los métodos de clase estándar mappermiten al usuario realizar operaciones de búsqueda, inserción y recorrido en un contenedor de forma unificada. Para muchos de ellos, se proporciona interacción con iteradores regulares de la biblioteca STL [8] .
Debido a la estructura ordenada del contenedor map, la búsqueda o inserción del elemento deseado se puede realizar en tiempo logarítmico [9] .
Nombre | Funciones |
---|---|
size() | Devuelve el número de elementos en el contenedor. |
empty() | Devoluciones truesi el contenedor está vacío |
find(k) | Devuelve un iterador que apunta al valor correspondiente al valor de la clave k. Si no existe tal valor en el contenedor, se devuelve un iterador.end |
operator[k] | Devuelve una referencia al valor correspondiente a la clave k. Si dicha clave no existe, entonces se crea. |
insert(pair(k,v)) | Inserta un par en el contenedor (k,v), devolviendo la dirección de su posición |
erase(k) | Elimina el elemento con la llave del contenedor.k |
erase(p) | Elimina del contenedor el elemento señalado por el iteradorp |
begin() | Devuelve un iterador al principio del contenedor. |
end() | Devuelve un iterador al final del contenedor. |