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