Compartir a través de


Colecciones

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 colección seguras para tipos para sus propios tipos de datos, se recomienda usar las clases basadas en plantillas más recientes.

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.

  • Arreglo

    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 Template-Based

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 plantilla 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 Nontemplate

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 se pueden volcar para diagnósticos

  • Si la colección es segura para tipos

Qué desea hacer

Tareas generales de Collection-Class

tareas de Template-Based Collection-Class

Acceso a los miembros de una colección (Template-Based o No)

Consulte también

Conceptos
Temas generales de MFC