Compartir a través de


Recommendations for Choosing a Collection (Clase)

Este artículo contiene información detallada diseñada para ayudarle a elegir una clase de colección para la aplicación determinada necesita.

La elección de una clase de colección depende de varios factores, incluyendo:

  • Las características de la forma de clase: orden, indización, y rendimiento, como se muestra en la tabla de Características de la colección más adelante en este tema

  • 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

La tabla siguiente, Características de la colección, resume las características de las formas disponibles de la colección.

  • Las columnas 2 y 3 describen cada forma de ordenación y tienen acceso a características. En la tabla, el término “orden” significa que el orden en que se insertan y se eliminan los elementos determina el orden en la colección; no significa que los elementos se ordenan en su contenido. El término “indizó” significa que los elementos de la colección se pueden recuperar mediante un índice entero, como elementos de una matriz estándar.

  • Las columnas 4 y 5 describen el rendimiento de cada forma. En aplicaciones que requieren muchas inserciones en la colección, la velocidad de inserción puede ser especialmente importante; en otras aplicaciones, la velocidad de búsqueda puede ser más importante.

  • La columna 6 describe si cada forma permite elementos duplicados.

Características de la colección

Forma

¿Secuenciado?

¿Indizado?

Inserte un elemento

Buscar el elemento especificado

¿Elementos duplicados?

Lista

No

Rápido

Lento

Matriz

Por int

Lento

Lento

Mapa

No

Por clave

Rápido

Rápido

Ningún Sí (keys) (valores)

La tabla siguiente, Características de las clases de colección MFC, resume otras características importantes de las clases de colección específicas de MFC como guía para la selección. La opción puede depender de si la clase está basada en las plantillas de C++, si los elementos se pueden serializar mediante el mecanismo de serialización de documento de MFC, si sus elementos se puede volcar mediante el mecanismo que vuelca de diagnóstico de MFC, o si la clase es tipo- segura (es decir, si puede garantizar el tipo de elementos almacenados en y recuperados de una colección basada en la clase.

Características de las clases de colección MFC

Clase

Utiliza C++

plantillas

Puede ser

serialized

Puede ser

volcado

Is

con seguridad de tipos

CArray

Sí 1

Sí 1

No

CByteArray

No

Sí 3

CDWordArray

No

Sí 3

CList

Sí 1

Sí 1

No

CMap

Sí 1

Sí 1

No

CMapPtrToPtr

No

No

No

CMapPtrToWord

No

No

No

CMapStringToOb

No

No

CMapStringToPtr

No

No

No

CMapStringToString

No

Sí 3

CMapWordToOb

No

No

CMapWordToPtr

No

No

No

CObArray

No

No

CObList

No

No

CPtrArray

No

No

No

CPtrList

No

No

No

CStringArray

No

Sí 3

CStringList

No

Sí 3

CTypedPtrArray

Depende 2

CTypedPtrList

Depende 2

CTypedPtrMap

Depende 2

CUIntArray

No

No

Sí 3

CWordArray

No

Sí 3

1. Para serializar, debe llamar explícitamente a la función de Serialize del objeto de colección; para volcar, debe llamar explícitamente a la función de Dump . No puede utilizar la forma ar << collObj para serializar o el formulario dmp << collObj a volcar.

2. Serializability depende del tipo de colección subyacente. Por ejemplo, si una matriz de tipo puntero se basa en CObArray, es serializable; si se basa en CPtrArray, no es serializable. Las clases “PTR” no se pueden serializar normalmente.

3. Si el propio marcado en esta columna, una clase de colección de segunda es tipo- seguro proporcionado se utiliza como se espera. Por ejemplo, si almacena bytes en CByteArray, la matriz es tipo- seguro. Pero si se utiliza para almacenar los caracteres, la seguridad de tipos es menos segura.

Vea también

Tareas

Acceso a todos los miembros de una colección

Conceptos

Colecciones

Clases basadas en plantillas

Cómo: Crear una colección con seguridad de tipos