Partager via


Classes Array, List et Map

Pour gérer les agrégats de données, la bibliothèque de classes fournit un groupe de classes de collection ( tableaux, listes et mappages) qui peuvent contenir divers types d’objets et de types prédéfinis. Les collections sont dimensionnées dynamiquement. Ces classes peuvent être utilisées dans n’importe quel programme, qu’elles soient écrites pour Windows ou non. Toutefois, elles sont les plus utiles pour implémenter les structures de données qui définissent vos classes de document dans l’infrastructure d’application. Vous pouvez facilement dériver des classes de collection spécialisées à partir de celles-ci, ou vous pouvez les créer en fonction des classes de modèle. Pour plus d’informations sur ces approches, consultez l’article Collections. Pour obtenir la liste des classes de collection de modèles, consultez l’article Classes de modèle pour les tableaux, listes et cartes.

Les tableaux sont des structures de données unidimensionnelles stockées contiguëment en mémoire. Ils prennent en charge un accès aléatoire très rapide, car l’adresse mémoire d’un élément donné peut être calculée en multipliant l’index de l’élément par la taille d’un élément et en ajoutant le résultat à l’adresse de base du tableau. Toutefois, les tableaux sont très coûteux si vous devez insérer des éléments dans le tableau, car l’ensemble du tableau au-delà de l’élément inséré doit être déplacé pour permettre à l’élément d’être inséré. Les tableaux peuvent croître et réduire si nécessaire.

Les listes sont similaires aux tableaux, mais elles sont stockées très différemment. Chaque élément d’une liste inclut é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 d’ajouter ou de supprimer des éléments, car cela implique uniquement de modifier quelques pointeurs. Toutefois, la recherche d’une liste peut être coûteuse, car toutes les recherches doivent commencer à l’une des extrémités de la liste.

Les mappages associent une valeur de clé à une valeur de données. Par exemple, la clé d’une carte peut être une chaîne et les données qu’un pointeur vers une liste. Vous demandez à la carte de vous donner le pointeur associé à une chaîne particulière. Les recherches de carte sont rapides, car les cartes utilisent des tables de hachage pour les recherches clés. L’ajout et la suppression d’éléments sont également rapides. Les mappages sont souvent utilisés avec d’autres structures de données comme index auxiliaires. MFC utilise un type spécial de mappage appelé carte de messages pour mapper les messages Windows à un pointeur vers la fonction gestionnaire pour ce message.

Voir aussi

Vue d’ensemble de la classe