Compartir a través de


Colecciones

La biblioteca MFC (Microsoft Foundation Class) proporciona clases de colección para administrar grupos de objetos. Estas clases son de dos tipos:

Nota:

Si el código ya usa clases de colección no creadas a partir de plantillas, puede seguir utilizándolas. Si escribe nuevas clases de colección con seguridad de tipos para sus propios tipos de datos, se recomienda que use las clases más recientes basadas en plantillas.

Formas de colección

Una clase de colección se caracteriza por su "forma" y por los tipos de sus elementos. La forma hace referencia a la forma en que la colección organiza y almacena los objetos. MFC proporciona tres formas básicas de colección: listas, matrices y mapas (también conocidos como diccionarios). Puede elegir la forma de colección más adecuada para su problema de programación concreto.

Cada una de las tres formas de colección proporcionadas se describe brevemente más adelante en este tema. Para comparar las características de las formas y ayudarle a decidir cuál es mejor para su programa, consulte Recomendaciones para elegir una clase de colección.

  • List

    La clase List proporciona una lista ordenada y no indexada de elementos, implementada como una lista vinculada doblemente. Una lista tiene una "cabeza" y una "cola", y agregar o quitar elementos de la cabeza o la cola, o insertarlos en el medio o eliminarlos, es muy rápido.

  • Matriz

    La clase array proporciona una matriz de objetos redimensionada, ordenada e indexada con enteros de forma dinámica.

  • Mapa (también conocido como diccionario)

    Un mapa es una colección que asocia un objeto de clave a un objeto de valor.

Clases de colección basadas en plantillas

La manera más fácil de implementar una colección con seguridad de tipos que contenga objetos de cualquier tipo es usar una de las clases basadas en plantillas de MFC. Para obtener ejemplos de estas clases, consulte el ejemplo de MFC COLLECT.

En la tabla siguiente se enumeran las clases de colección basadas en plantillas de MFC:

Clases de plantillas de colección

Contenido de las colecciones Matrices Listas Maps
Colecciones de objetos de cualquier tipo CArray CList CMap
Colecciones de punteros a objetos de cualquier tipo CTypedPtrArray CTypedPtrList CTypedPtrMap

Clases de colección no basadas en plantillas

Si la aplicación ya usa clases no creadas a partir de plantillas de MFC, puede seguir utilizándolas. Sin embargo, para las nuevas colecciones, se recomienda usar las clases basadas en plantillas. En la tabla siguiente se enumeran las clases de colección de MFC que no se basan en plantillas.

Clases de colección que no son plantillas

Matrices Listas Maps
CObArray CObList CMapPtrToWord
CByteArray CPtrList CMapPtrToPtr
CDWordArray CStringList CMapStringToOb
CPtrArray CMapStringToPtr
CStringArray CMapStringToString
CWordArray CMapWordToOb
CUIntArray CMapWordToPtr

La tabla Características de clases de colección de MFC de Recomendaciones para elegir una clase de colección describe las clases de colección de MFC en relación con estas características (distintas de la forma):

  • Si la clase usa plantillas de C++

  • Si los elementos almacenados en la colección pueden serializarse

  • Si los elementos almacenados en la colección pueden volcarse para diagnósticos

  • Si la colección tiene seguridad de tipos

Qué desea hacer

Tareas generales con clases de colección

Tareas con clases de colección basadas en plantillas

Acceso a los miembros de una colección (basada en plantillas o no)

Consulte también

Conceptos
Temas generales de MFC