Compartir a través de


Clases array, list y map

Para controlar los agregados de datos, la biblioteca de clases proporciona un grupo de clases de colección (matrices, listas y mapas) que pueden contener diversos tipos de objeto y predefinidos. Las colecciones tienen un tamaño dinámico. Estas clases se pueden usar en cualquier programa, tanto si se escriben para Windows como si no. Sin embargo, son más útiles para implementar las estructuras de datos que definen las clases de documento en el marco de trabajo de la aplicación. Puede derivar fácilmente clases de colección especializadas de estas, o puede crearlas en función de las clases de plantilla. Para obtener más información sobre estos enfoques, consulte el artículo Colecciones. Para obtener una lista de las clases de colección de plantillas, consulte el artículo Clases de plantilla para matrices, listas y mapas.

Las matrices son estructuras de datos unidimensionales que se almacenan de forma contigua en la memoria. Admiten un acceso aleatorio muy rápido, ya que la dirección de memoria de cualquier elemento determinado se puede calcular multiplicando el índice del elemento por el tamaño de un elemento y agregando el resultado a la dirección base de la matriz. Sin embargo, las matrices son muy costosas si tiene que insertar elementos en la matriz, ya que toda la matriz pasada el elemento insertado tiene que moverse para que el elemento se inserte. Las matrices pueden crecer y reducirse según sea necesario.

Las listas son similares a las matrices, pero se almacenan de forma muy diferente. Cada elemento de una lista también incluye un puntero a los elementos anteriores y siguientes, lo que lo convierte en una lista doblemente vinculada. Es muy rápido agregar o eliminar elementos porque hacerlo solo implica cambiar algunos punteros. Sin embargo, la búsqueda de una lista puede ser costosa, ya que todas las búsquedas deben comenzar en uno de los extremos de la lista.

Los mapas relacionan un valor de clave con un valor de datos. Por ejemplo, la clave de un mapa podría ser una cadena y los datos que un puntero a una lista. Pediría al mapa que le proporcione el puntero asociado a una cadena determinada. Las búsquedas de mapas son rápidas porque los mapas usan tablas hash para búsquedas de claves. Agregar y eliminar elementos también es rápido. A menudo, los mapas se usan con otras estructuras de datos como índices auxiliares. MFC usa un tipo especial de mapa denominado mapa de mensajes para asignar mensajes de Windows a un puntero a la función de controlador para ese mensaje.

Consulte también

Información general sobre la clase