Colecciones
La biblioteca Microsoft Foundation Class proporciona clases de colección para administrar los grupos de objetos. Estas clases son de dos tipos:
Clases de colección creadas a partir de las plantillas de C++
Clases de colección no creadas a partir de plantillas
Nota
Si el código utiliza ya clases de colección que no es de plantilla, puede continuar utilizandolas.Si escribe las nuevas clases de colección con seguridad de tipos dispone de tipos de datos, se recomienda utilizar las nuevas clases plantilla- basadas en.
Formas de colección
Una clase de colección se caracteriza por su “forma” y los tipos de sus elementos. La forma hace referencia a la manera en que los objetos se organizan y que almacenados por la colección. MFC proporciona tres formas básicas de la colección: listas, matrices, y mapas (también conocidos como diccionarios). Puede elegir la colección que se adapta al problema concreto de la programación.
Cada una de las tres formas proporcionadas de colección se describe brevemente más adelante en este tema. Para comparar las características de formas para ayudarle a decidir cuál es el mejor para el programa, vea Recommendations for Choosing a Collection (Clase).
Lista
La clase list proporciona una lista ordenada, el de elementos, implementada como una lista doblemente vinculada. Una lista tiene “ejecutar” y una cola “,” y la agregar o quitar elementos de encabezado o de la cola, o insertar o eliminar elementos en el centro, es muy rápidamente.
Matriz
La clase array proporciona una matriz dinámicamente ordenados, petición, y entero- indizado de objetos.
Mapa (también conocido como diccionario)
Un mapa es una colección que asocie un objeto clave a un objeto de valor.
Las clases de colección Plantilla-basadas
La manera más fácil de implementar una colección de tipos que contiene objetos de cualquier tipo es utilizar una de las clases plantilla- basadas MFC. Para obtener ejemplos de estas clases, vea el ejemplo GETMFC.
La tabla siguiente se enumeran las clases de colección plantilla- basadas MFC.
Clases de plantilla de la 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 basado en las plantillas
Si la aplicación utiliza ya clases de segunda de MFC, puede continuar utilizandolas. Sin embargo, para las nuevas colecciones, recomendamos utilizar las clases plantilla- basadas en. La tabla siguiente se enumeran las clases de colección de MFC que no se basan en las plantillas.
Clases de colección de Segunda
Matrices |
Listas |
Mapas |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
Las características de tabla de las clases de colección de MFC en Recommendations for Choosing a Collection (Clase) describen las clases de colección de MFC en términos de estas características (distinto de la forma):
Si la clase utiliza plantillas de C++
Si los elementos almacenados en la colección pueden ser serializados
Si los elementos almacenados en la colección se puede volcar para diagnósticos
Si la colección es tipo-segura