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
[!REMARQUE]
Si votre code utilise déjà des classes de collection non basées sur des modèles, vous pouvez continuer à utiliser.Si vous entrez de nouvelles classes de collection de type sécurisé pour vos propres types de données, nous vous recommandons d'utiliser les classes basées sur des modèles plus récentes.
Formes de collection
Une classe de collection étant caractérisé 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 enregistrés par la collection.MFC fournit trois formes de base de collection : listes, les tableaux, et tables (également appelés dictionnaires).Vous pouvez choisir la forme de collection qui est plus adaptée à votre problème de programmation particulier.
Les trois formes fournies de collection est brièvement décrite plus loin dans cette rubrique.Pour comparer les fonctionnalités des formes pour vous aider à décider qui est la mieux adaptée à votre programme, consultez Recommendations for Choosing a Collection, classe.
Liste
La classe de liste fournit une liste ordonnée et non indexée d'éléments, implémentée sous forme de liste doublement liée.Une liste contient une « tête » et une « ), » et l'ajout ou la suppression des éléments de le début ou la fin, ou insérer ou supprimer des éléments au milieu, est très rapidement.
Tableau
La classe de tableau fournit un tableau dynamique enregistré, enregistré, et entier-indexé d'objets.
Mappage (également appelé un dictionnaire)
Un mappage est une collection qui associe un objet principal avec un objet valeur.
Les classes de collection basées sur des modèles
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 basées sur des modèles MFC.Pour obtenir des exemples de ces classes, consultez l'exemple COLLECTMFC.
Le tableau suivant répertorie les classes de collection basées sur des modèles MFC.
Classes de modèle de collection
Contenu de la collection |
Tableaux |
Listes |
Tables |
---|---|---|---|
Collections d'objets de tout type |
CArray |
CList |
CMap |
Les collections de pointeurs vers des objets de tout type |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Les classes de collection pas sur des modèles
Si votre application utilise déjà des classes non basées sur des modèles MFC, vous pouvez continuer à utiliser.Toutefois, pour de 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 sur des modèles.
Classes de collection 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 du tableau de classes de collection MFC dans Recommendations for Choosing a Collection, classe décrit les classes de collection MFC en termes de ces caractéristiques (autre que la forme) :
Si la classe utilise des modèles C++
Si les éléments contenus dans la collection peuvent être sérialisés
Si les éléments contenus dans la collection peuvent être clichés pour le diagnostic
Si la collection est de type sécurisé