Partager via


Collections

La bibliothèque MFC fournit des classes de collection pour gérer des groupes d'objets. Ces classes sont de deux types :

  • Classes de collection crées à partir de modèles C++

  • Classes de collection non crées à partir de modèles C++

Notes

Si votre code utilise déjà les classes de collection basées sur des modèles, vous pouvez continuer à les utiliser.Si vous spécifiez de nouvelles classes de collection de type sécurisé pour vos propres types de données, nous vous recommandons d'utiliser les plus récentes classes basées sur des modèles.

Formes de collection

Une classe de collection est caractérisée par sa « forme » et par les types de ses éléments. La forme fait référence à la façon dont les objets sont organisés et stockés par la collection. MFC fournit trois formes de base de collection : listes, tables, et cartes (également appelées dictionnaires). Choisissez la forme de collection qui est la plus adaptée à votre problème de programmation particulier.

Chacune des trois formes de collection est décrite brièvement plus loin dans cette rubrique. Pour comparer les fonctionnalités des formes pour vous aider à déterminer celle qui convient à votre programme, consultez recommandations pour choisir une classe de collection.

  • Liste

    La classe de pool fournit une liste triée et non indexée d'éléments, implémentée comme des listes doublement chaînées. Une liste possède une « tête » et une « queue », et ajouter ou supprimer des éléments de la tête ou de la queue, ou insérer ou supprimer des éléments dans le milieu, est très rapide.

  • Tableau

    La classe de tableau fournit un tableau d'objets classés, ordonnés, et indexés par des entiers.

  • Cartes (également appelées dictionnaire)

    Une carte est une collection qui associe un objet principal avec un objet de valeur.

Les classes de collections basées sur un modèle

La façon la plus simple d'implémenter une collection de type sécurisé qui contient des objets de tout type est d'utiliser l'une des classes MFC basées sur un modèle. Pour obtenir des exemples de ces classes, consultez l'exemple RECUEILLEZde MFC.

Le tableau suivant répertorie les classes de collection MFC basées sur des modèles :

Classes de modèle de collections

Contenu des collections

Tableaux

Listes

Tables

Collections d'objets de n'importe quel type.

CArray

CList

CMap

Collections de pointeurs vers des objets de n'importe quel type

CTypedPtrArray

CTypedPtrList

CTypedPtrMap

Les classes de collection non basées sur des modèles

Si votre application utilise déjà les classes MFC de collection qui ne se basent pas sur des modèles, vous pouvez continuer à les utiliser. Toutefois, pour les nouvelles collections, nous vous recommandons d'utiliser les classes basées sur des modèles. Le tableau suivant répertorie les classes de collection MFC qui ne sont pas basées sur des modèles.

Classes de collections non basées sur des modèles.

Tableaux

Listes

Tables

CObArray

CObList

CMapPtrToWord

CByteArray

CPtrList

CMapPtrToPtr

CDWordArray

CStringList

CMapStringToOb

CPtrArray

 

CMapStringToPtr

CStringArray

 

CMapStringToString

CWordArray

 

CMapWordToOb

CUIntArray

 

CMapWordToPtr

Les caractéristiques de la table de classes de collections MFC dans recommandations pour choisir une classe de collection décrit les classes de collection MFC en termes de fonctionnalités (autres que la forme) :

  • Si la classe utilise des modèles C++

  • Si les éléments stockés dans la collection peuvent être sérialisés

  • Si les éléments stockés dans la collection peuvent être mis de côté pour effectuer des diagnostics

  • Si la collection est de type sécurisé

Que voulez-vous faire ?

Tâches générales de classe de collection

Tâches de classe de collection basées sur un modèle

L'accès aux membres d'une collection (basée sur un modèle ou non)

Voir aussi

Concepts

Rubriques de général MFC

Autres ressources

concepts de MFC