Tableau, liste et classes de carte

Pour la manipulation des agrégats de données, la bibliothèque de classes fournit un groupe de classes de collection, tableaux, listes et de « cartes » — qui peut contenir une variété de types prédéfinis et d'objet. Les collections sont dynamiquement la taille. Ces classes peuvent être utilisées dans n'importe quel programme, écrites pour Windows ou non. Cependant, ils sont plus utiles pour la mise en œuvre des structures de données qui définissent des classes de vos documents dans le cadre de l'application. Vous pouvez facilement dériver des classes de collection spécialisée de ces, ou vous pouvez créer les basé sur les classes de modèle. Pour plus d'informations sur ces approches, consultez l'article Collections dans le Guide du programmeur Visual C++ et les Classes de modèles de tableaux, de listes et de cartes dans cette vue d'ensemble pour obtenir une liste des classes de collection modèle.

Les tableaux sont des structures de données unidimensionnelle qui sont stockés de façon contiguë en mémoire. Ils soutiennent l'accès aléatoire très rapide puisque l'adresse mémoire d'un élément donné peut être calculé en multipliant l'index de l'élément de la taille d'un élément et en ajoutant le résultat à l'adresse de base du tableau. Mais les tableaux sont très coûteuses si vous devez insérer des éléments dans le tableau, depuis le tableau d'ensemble depuis l'élément inséré doit être déplacé pour faire place à l'élément à insérer. Tableaux peuvent croître et diminuer si nécessaires.

Listes sont similaires aux tableaux, mais sont stockées de manière très différente. Chaque élément dans une liste comprend également un pointeur vers les éléments précédents et suivants, ce qui en fait une liste doublement liée. Il est très rapide pour ajouter ou supprimer des éléments car faisant implique seulement de changer quelques pointeurs. Cependant, à la recherche d'une liste peut être coûteuse puisque toutes les recherches doivent commencer à l'une des extrémités de la liste.

Cartes rapportent à une valeur de clé à une valeur de données. Par exemple, la clé de la carte pourrait être une chaîne et les données d'un pointeur dans une liste. Vous poseriez à la carte pour vous donner le pointeur associé à une chaîne particulière. Carte recherches sont rapides, parce que les cartes utilisent des tables de hachage pour les recherches principales. Ajout et suppression d'éléments sont aussi rapide. Cartes sont souvent utilisés avec d'autres structures de données comme des indices auxiliaires. MFC utilise un type spécial de carte appelé un « carte de message"pour mapper les messages Windows à un pointeur vers la fonction de gestionnaire d'événements pour ce message.

Index