Teilen über


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. Informationen zum Vergleichen der Features der Shapes, die Ihnen bei der Entscheidung helfen sollen, welche für Ihr Programm am besten geeignet ist, finden Sie unter "Empfehlungen für die Auswahl 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.

  • Anordnung

    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 klassen der Template-Based auflistung

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 Felder Listet Landkarten
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

Felder Listet Landkarten
CObArray CObList CMapPtrToWord
CByteArray CPtrList CMapPtrToPtr
CDWordArray CStringList CMapStringToOb
CPtrArray CMapStringToPtr
CStringArray CMapStringToString
CWordArray CMapWordToOb
CUIntArray CMapWordToPtr

Die Tabelle "Merkmale von MFC-Auflistungsklassen" in den Empfehlungen für die Auswahl einer Sammlungsklasse beschreibt die MFC-Auflistungsklassen in Bezug auf diese Merkmale (außer Form):

  • Gibt an, ob die Klasse C++-Vorlagen verwendet

  • Gibt an, ob die in der Sammlung gespeicherten Elemente serialisiert werden können.

  • Gibt an, ob die in der Auflistung gespeicherten Elemente für die Diagnose abgebilden werden können.

  • Gibt an, ob die Sammlung typsicher ist.

Was möchten Sie tun

Allgemeine Collection-Class Vorgänge

Template-Based Collection-Class Vorgänge

Zugreifen auf die Elemente einer Auflistung (Template-Based oder nicht)

Siehe auch

Konzepte
Allgemeine MFC-Themen