Original article: https://www.freecodecamp.org/news/c-plus-plus-map-explained-with-examples/

map es un contenedor que almacena elementos en pares clave-valor. Es similar a las colecciones en Java, los arreglos asociativos en PHP, o los objetos en JavaScript.

Aquí están los principales beneficios de usar map:

  • map solo almacena claves únicas, y las propias claves están ordenadas
  • Debido a que las claves están ya ordenadas, el buscar un elemento es muy rápido
  • Hay solo un valor para cada clave

Aquí un ejemplo:

#include <iostream>
#include <map>

using namespace std;

int main (){
  map<char,int> primero;
  
  //inicializando
  primero['a']=10;
  primero['b']=20;
  primero['c']=30;
  primero['d']=40;
  
   map<char, int>::iterator eso;
   for(eso=primero.begin(); eso!=primero.end(); ++eso){
      cout << eso->primero << " => " << eso->segundo << '\n';
   }
   
  return 0;
}

Salida:

a => 10
b => 20
c => 30
d => 40

Creación de un objeto map

map<string, int> miMapa;

Inserción

Inserción de datos con la función miembro insert

miMapa.insert(make_pair("Tierra", 1));
miMapa.insert(make_pair("Luna", 2));

También podemos insertar datos en std::map usando el operador [] es decir

miMapa["Sol"] = 3;

Acceso a los elementos de map

Para acceder a los elementos de map, tienes que crear un iterador. Por ejemplo:

map<char, int>::iterator eso;
for(eso=primero.begin(); eso!=primero.end(); ++eso){
  cout << eso->first << " => " << eso->second << '\n';
}