Sammlungen

Die Microsoft Foundation-Klassenbibliothek stellt Sammlungsklassen zum Verwalten von Gruppen von Objekten bereit. Diese Klassen sind von zwei Typen:

Hinweis

Wenn Ihr Code bereits Nichtvorlagensammlungsklassen verwendet, können Sie sie weiterhin verwenden. Wenn Sie neue typsichere Sammlungsklassen für Ihre eigenen Datentypen schreiben, wird empfohlen, die neueren vorlagenbasierten Klassen zu verwenden.

Sammlungs-Shapes

Eine Sammlungsklasse zeichnet sich durch seine "Form" und durch die Typen seiner Elemente aus. Das Shape bezieht sich auf die Art und Weise, wie die Objekte von der Auflistung organisiert und gespeichert werden. MFC stellt drei grundlegende Sammlungs-Shapes bereit: Listen, Arrays und Karten (auch als Wörterbücher bezeichnet). Sie können das Sammlungs-Shape auswählen, das am besten für Ihr spezielles Programmierproblem geeignet ist.

Jede der drei bereitgestellten Sammlungs-Shapes wird kurz später in diesem Thema beschrieben. Wenn Sie die Features der Shapes vergleichen möchten, um zu entscheiden, welche für Ihr Programm am besten geeignet ist, finden Sie unter Empfehlungen zum Auswählen einer Sammlungsklasse.

  • Liste

    Die Listenklasse stellt eine sortierte, nicht indizierte Liste von Elementen bereit, die als doubly verknüpfte Liste implementiert wird. Eine Liste hat einen "Kopf" und einen "Schwanz", und das Hinzufügen oder Entfernen von Elementen vom Kopf oder Schwanz, oder das Einfügen oder Löschen von Elementen in der Mitte ist sehr schnell.

  • Array

    Die Arrayklasse stellt ein dynamisch angepasstes, sortiertes und ganzzahliges Array von Objekten bereit.

  • Karte (auch als Wörterbuch bezeichnet)

    Eine Zuordnung ist eine Auflistung, die einem Wertobjekt ein Schlüsselobjekt zuordnet.

Die vorlagenbasierten Auflistungsklassen

Die einfachste Möglichkeit zum Implementieren einer typsicheren Auflistung, die Objekte eines beliebigen Typs enthält, besteht darin, eine der vorlagenbasierten MFC-Klassen zu verwenden. Beispiele für diese Klassen finden Sie im MFC-Beispiel COLLECT.

In der folgenden Tabelle sind die vorlagenbasierten MFC-Auflistungsklassen aufgeführt.

Sammlungsvorlagenklassen

Sammlungsinhalte Arrays Listen Maps
Auflistungen von Objekten eines beliebigen Typs CArray CList CMap
Auflistungen von Zeigern auf Objekte eines beliebigen Typs CTypedPtrArray CTypedPtrList CTypedPtrMap

Die Auflistungsklassen, die nicht auf Vorlagen basieren

Wenn Ihre Anwendung bereits MFC-Nichtvorlagenklassen verwendet, können Sie sie weiterhin verwenden. Für neue Auflistungen wird jedoch empfohlen, die vorlagenbasierten Klassen zu verwenden. In der folgenden Tabelle sind die MFC-Auflistungsklassen aufgeführt, die nicht auf Vorlagen basieren.

Klassen der Nontemplate-Auflistung

Arrays Listen Maps
CObArray CObList CMapPtrToWord
CByteArray CPtrList CMapPtrToPtr
CDWordArray CStringList CMapStringToOb
CPtrArray CMapStringToPtr
CStringArray CMapStringToString
CWordArray CMapWordToOb
CUIntArray CMapWordToPtr

Die Tabelle "Merkmale der MFC-Auflistungsklassen" in Empfehlungen zum Auswählen einer Sammlungsklasse beschreibt die MFC-Auflistungsklassen in Bezug auf diese Merkmale (außer Form):

  • ob die Klasse C++-Vorlagen verwendet

  • ob die in der Auflistung gespeicherten Elemente serialisiert werden können

  • ob die in der Auflistung gespeicherten Elemente zur Diagnose gesichert werden können

  • ob die Auflistung typsicher ist

Was möchten Sie tun

Allgemeine Sammelklassenaufgaben

Vorlagenbasierte Sammlungsklassenaufgaben

Zugreifen auf die Elemente einer Auflistung (vorlagenbasiert oder nicht)

Siehe auch

Konzepte
Allgemeine MFC-Themen