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 usa 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 para sus propios tipos de datos, se recomienda utilizar las nuevas clases basadas en plantillas.
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 adapta más 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).
List
La clase list proporciona una lista ordenada, el de elementos, implementada como una lista doblemente vinculada.Una lista tiene un “encabezado” 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 basadas en plantillas
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 basadas en plantillas MFC.Para obtener ejemplos de estas clases, vea el ejemplo GETMFC.
La tabla siguiente se enumeran las clases de colección basadas en plantillas 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 basadas en plantillas.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 tiene seguridad de tipos