Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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