En este capítulo veremos como crear arrays asociativos a través de la librería map, uno de los ejemplos más interesantes que veremos es como recorrer uno a uno los elementos del array asociativo para extraer la clave y el valor de cada uno de ellos a través del miembro iterator de la clase map.
También haremos uso de typedef para definir tipos a través de un alias.
Y utilizaremos la clase pair que nos permite definir pares individuales de diferentes tipos para agregar elementos a un array asociativo map a través de insert.
También haremos uso de typedef para definir tipos a través de un alias.
Y utilizaremos la clase pair que nos permite definir pares individuales de diferentes tipos para agregar elementos a un array asociativo map a través de insert.
Un array asociativo es aquel array en el que sus elementos van asociados a través de una determinada clave, es decir, es diferente a un array tradicional indexado, para acceder a un elemento de un array asociativo lo haremos a través de la clave asignada a dicho elemento.
map.cpp
#include <iostream>
#include <string>
#include <map>
using namespace std;
/* typedef: nos permite definir un determinado tipo asignándole un alias */
typedef pair<int, string> par;
typedef map<int, string> nombres;
int main()
{
/*
Con la librería map podemos crear arrays asociativos, este tipo de arrays tienen en particular en que
sus elementos van asociados a través de una determinada clave y
no de un modo indexado como un array tradicional, map también nos proporciona una serie de herramientas
muy útiles para trabajar con este tipo de arrays */
map<string, string> asociativo;
asociativo["uno"] = "manzana";
asociativo["dos"] = "pera";
asociativo["tres"] = "naranja";
//Acceder al valor de un determinado elemento
cout << asociativo["tres"] << endl;
map<string, string>::iterator iter;
for (iter = asociativo.begin(); iter != asociativo.end(); iter++)
{
cout << "Clave=" << iter->first << ":Valor=" << iter->second << endl;
}
nombres n;
n.insert(par(1, "Manuel"));
n.insert(par(2, "Antonio"));
map<int, string>::iterator i;
for (i = n.begin(); i != n.end(); i++)
{
cout << "Clave=" << i->first << ":Valor=" << i->second << endl;
}
system("PAUSE");
return 0;
}
No hay comentarios:
Publicar un comentario