Map (C++)

TEORÍA

El objeto «map» es un objeto asociativo, esto es, asocia un valor a otro, normalmente utilizado para indexar valores teniendo pares «clave->valor».

PRÁCTICA

Los ejemplos a continuación utilizan un par «int->string» pero se pueden utilizar otros valores en la definición del mapa.

#include <map>
using namespace std;
//...

// INICIALIZACIÓN
map<int, string> mi_mapa;
mi_mapa[0] = "blah";
mi_mapa[1] = "Cacahué";

// ACCESO
cout << mi_mapa[1] << endl;

// BORRADO 
mi_mapa.erase( mi_mapa.find(1) );
//Se borra la entrada del índice 1 por completo (no se queda a NULL ni se queda vacío, desaparece la entrada y el valor).

// RECORRER
for (auto item : mi_mapa) {
  cout << item.first << " => " << item.second << endl;
}

// VACIADO 
mi_mapa.clear(); 

// TAMAÑO 
int tamanio = mi_mapa.size(); 

// ¿ESTÁ VACÍO? 
bool mapa_vacio = mi_mapa.empty();

// ¿EXISTE ELEMENTO?
if(mi_mapa.find(666) == mi_mapa.end()){
  cout << "Elemento no encontrado" << endl;
}
// ó contar el número de ocurrencias en el mapa
if(mi_mapa.count(666)==0) //Elemento no encontrado
//Es más eficiente el primer método (find en lugar de count)
//https://stackoverflow.com/a/25490408

 

Deja un comentario