Tablas Hash multivalores en Qt

Tablas Hash

Una tabla hash es una estructura de datos que asocia llaves o claves con valores. Almacena pares (llave, valor) y proporciona una búsqueda muy rápida del valor asociado a una llave.

Supongamos que queremos tener una tabla hash que contenga una lista de alumnos con sus respectivas edades. En Qt podemos utilizar la clase QHash para crear una tabla hash de la siguiente forma:

QHash<QString, int> alumnos;

Con la instrucción anterior creamos una tabla hash llamada alumnos en donde la llave es de tipo QString (para almacenar el nombre del alumno) y el valor es de tipo entero (para almacenar la edad del alumno).  Para almacenar la información en la tabla hash llamada alumnos que acabamos de crear podemos usar algo como:


alumnos.insert(“Juan”, 20);
alumnos.insert(“Laura”, 22);
alumnos.insert(“Pedro”, 21);

Si queremos almacenar la edad de Laura en una variable llamada edad_laura, utilizamos la siguiente instrucción:

int edad_laura = alumnos.value(“Laura”);

Tablas Hash multivalores

Son tablas hash que permiten almacenar múltiples valores con la misma llave.

Supongamos que queremos almacenar en una estructura, los números de matrícula de todos los alumnos que están inscritos en una materia determinada. En Qt podemos hacerlo con la instrucción siguiente:

QMultiHash<QString, int> inscritos;

Con la instrucción anterior creamos una tabla hash multivalores llamada inscritos en donde la llave es de tipo QString (para almacenar el nombre de la materia) y el valor es de tipo entero (para almacenar el número de matrícula del alumno).  Para almacenar la información podemos usar algo como:

inscritos.insert(“Software Libre 1”, 456);
inscritos.insert(“Software Libre 1”, 924);
inscritos.insert(“Primeros pasos en GNU/Linux”, 621);
inscritos.insert(“Software Libre 1”, 285);
inscritos.insert(“Primeros pasos en GNU/Linux”, 456);

Si queremos recuperar los números de matrícula de todos los alumnos inscritos en la materia Software Libre 1, podemos usar la función values, que regresa una lista que podemos almacenar en un objeto de tipo QList para poder recorrerla posteriormente.

Qlist<int> matriculas_sl = inscritos.values(“Software Libre 1”);

Etiquetas: , , , ,

Una respuesta to “Tablas Hash multivalores en Qt”

  1. Tablas Hash multivalores en Qt | GNU/Linux Puebla Says:

    […] https://salomonrt.wordpress.com/2010/03/15/tablas-hash-multivalores-en-qt/ blog comments powered by Disqus var disqus_url = […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: