81 lines
2.0 KiB
Markdown
81 lines
2.0 KiB
Markdown
---
|
|
title: Map
|
|
localeTitle: Mapa
|
|
---
|
|
## Introducción del mapa
|
|
|
|
`map` es un contenedor asociativo que almacena elementos en un par clave-valor. Al igual que en `Java` tenemos colección, array asociativo en PHP y así sucesivamente.
|
|
|
|
## Beneficios de usar el mapa
|
|
|
|
* Almacena solo claves únicas y eso también en orden clasificado basado en sus criterios de clasificación asignados.
|
|
* Como las claves están ordenadas, la búsqueda de elementos en el mapa a través de la clave es muy rápida, es decir, toma tiempo logarítmico.
|
|
* En el `map` solo habrá un valor adjunto con cada tecla.
|
|
* `map` puede ser utilizado como matrices asociativas.
|
|
* Podría implementarse utilizando árboles binarios equilibrados.
|
|
|
|
Aquí hay un ejemplo:
|
|
|
|
```c++
|
|
#include <iostream>
|
|
#include <map>
|
|
|
|
using namespace std;
|
|
|
|
int main (){
|
|
map<char,int> first;
|
|
|
|
//initializing
|
|
first['a']=10;
|
|
first['b']=20;
|
|
first['c']=30;
|
|
first['d']=40;
|
|
|
|
map<char, int>::iterator it;
|
|
for(it=first.begin(); it!=first.end(); ++it){
|
|
cout << it->first << " => " << it->second << '\n';
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
```
|
|
|
|
Salida:
|
|
```
|
|
a => 10
|
|
b => 20
|
|
c => 30
|
|
d => 40
|
|
```
|
|
|
|
## Creando objeto de mapa
|
|
|
|
`map<string, int> myMap;`
|
|
|
|
## Inserción
|
|
|
|
Insertando datos con la función miembro insertada.
|
|
|
|
```c++
|
|
myMap.insert(make_pair("earth", 1));
|
|
myMap.insert(make_pair("moon", 2));
|
|
```
|
|
|
|
También podemos insertar datos en std :: map utilizando el operador \[\], es decir
|
|
|
|
`myMap["sun"] = 3;`
|
|
|
|
## Accediendo a los elementos del mapa.
|
|
|
|
Para acceder a los elementos del mapa, debe crear un iterador para él. Aquí hay un ejemplo como se dijo antes.
|
|
|
|
```c++
|
|
map<char, int>::iterator it;
|
|
for(it=first.begin(); it!=first.end(); ++it){
|
|
cout << it->first << " => " << it->second << '\n';
|
|
}
|
|
```
|
|
|
|
Aquí puedes aprender más sobre el mapa: [cpluspluc\_map](http://www.cplusplus.com/reference/map/map/map/)
|
|
|
|
NB: Todos los códigos en el ejemplo están en versión C ++ 11. Puedes aprender más sobre la versión de C ++ [aquí](http://en.cppreference.com/w/cpp/compiler_support) |