Compartir a través de


Colecciones

Nota:

La biblioteca Microsoft Foundation Classes (MFC) sigue siendo compatible. Sin embargo, ya no estamos agregando características ni actualizando la documentación.

La biblioteca 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 nontemplate, puede seguir utilizándolas. Si escribe nuevas clases de colecciones seguras de tipos para sus tipos de datos, le recomendamos que utilice 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 los objetos están organizados y almacenados por la colección. 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 que le ayudarán a decidir cuál es mejor para su programa, consulte Recomendaciones para elegir una clase de colección.

  • Lista

    La clase list proporciona una lista ordenada y no indexada de elementos, implementada como una lista vinculada doble. Una lista tiene una "cabeza" y una "cola", y agregar o quitar elementos de la cabeza o cola, o insertar o eliminar elementos en el centro, es muy rápido.

  • Array

    La clase de matriz proporciona una matriz indizada de enteros, ordenada y de tamaño dinámico de objetos.

  • 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 segura para tipos que contiene 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 la colección Matrices Listas Mapas
Colecciones de objetos de cualquier tipo CArray CList CMap
Colecciones de punteros a objetos de cualquier tipo CTypedPtrArray CTypedPtrList CTypedPtrMap

Las clases de colección no basadas en plantillas

Si la aplicación ya usa clases MFC nontemplate, 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 MFC que no se basan en plantillas.

Clases de colección que no son plantillas

Matrices Listas Mapas
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 MFC de Recomendaciones para elegir una clase de colección describe las clases de colección MFC en términos de estas características (distintas de la forma):

  • Si la clase usa plantillas de C++

  • Si los elementos almacenados en la colección se pueden serializar

  • 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 de Collection-Class

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