Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La bibliothèque de classes Microsoft Foundation fournit des classes de collection pour gérer des groupes d’objets. Ces classes sont de deux types :
Remarque
Si votre code utilise déjà des classes de collection nontemplates, vous pouvez continuer à les utiliser. Si vous écrivez de nouvelles classes de collection de type sécurisé pour vos propres types de données, nous vous recommandons d’utiliser les classes plus récentes 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 collection de base : listes, tableaux et cartes (également appelés dictionnaires). Vous pouvez choisir la forme de collection la plus adaptée à votre problème de programmation particulier.
Chacune des trois formes de collection fournies est décrite brièvement plus loin dans cette rubrique. Pour comparer les caractéristiques des formes pour vous aider à décider qui convient le mieux à votre programme, consultez Recommandations pour choisir une classe de collection.
Liste
La classe de liste fournit une liste ordonnée et non indexée d’éléments, implémentée en tant que liste doublement liée. Une liste a une « tête » et une « queue », et l’ajout ou la suppression d’éléments de la tête ou de la queue, ou l’insertion ou la suppression d’éléments au milieu, est très rapide.
Tableau
La classe de tableau fournit un tableau d’objets indexés de manière dynamique, triée et ordonnée.
Carte (également appelée dictionnaire)
Une carte est une collection qui associe un objet clé à un objet valeur.
Classes de collection Template-Based
Le moyen le plus simple d’implémenter une collection de type sécurisé qui contient des objets d’un type quelconque consiste à utiliser l’une des classes basées sur des modèles MFC. Pour obtenir des exemples de ces classes, consultez l’exemple MFC COLLECT.
Le tableau suivant répertorie les classes de collection basées sur des modèles MFC.
Classes de modèles de collection
| Contenu de la collection | Tableaux | Listes | Cartes |
|---|---|---|---|
| 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 |
Classes de collection non basées sur des modèles
Si votre application utilise déjà des classes nontemplateS MFC, 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.
Nontemplate Collection Classes
| Tableaux | Listes | Cartes |
|---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
CMapStringToPtr |
|
CStringArray |
CMapStringToString |
|
CWordArray |
CMapWordToOb |
|
CUIntArray |
CMapWordToPtr |
La table Caractéristiques des classes de collection MFC dans Recommendations for Choosing a Collection Class décrit les classes de collection MFC en termes de ces caractéristiques (autres que la forme) :
Indique si la classe utilise des modèles C++
Indique si les éléments stockés dans la collection peuvent être sérialisés
Indique si les éléments stockés dans la collection peuvent être vidés pour les diagnostics
Indique si la collection est de type sécurisé