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