Freigeben über


Array-, Listen- und Kartenklassen

Hinweis

Die Microsoft Foundation Classes (MFC)-Bibliothek wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.

Für die Behandlung von Datenaggregaten stellt die Klassenbibliothek eine Reihe von Sammlungsklassen bereit – Arrays, Listen und Abbildungen –, die eine Vielzahl von Objekten und vordefinierten Typen enthalten können. Die Sammlungen haben eine dynamische Größe. Diese Klassen können in jedem Beliebigen Programm verwendet werden, unabhängig davon, ob sie für Windows geschrieben wurden. Sie sind jedoch am nützlichsten für die Implementierung der Datenstrukturen, die Ihre Dokumentklassen im Anwendungsframework definieren. Sie können spezielle Sammlungsklassen leicht von diesen ableiten, oder Sie können sie basierend auf den Vorlagenklassen erstellen. Weitere Informationen zu diesen Ansätzen finden Sie im Artikel Sammlungen. Eine Liste der Vorlagensammlungsklassen finden Sie im Artikel Vorlagenklassen für Arrays, Listen und Karten.

Arrays sind eindimensionale Datenstrukturen, die zusammenhängend im Speicher gespeichert werden. Sie unterstützen sehr schnellen zufälligen Zugriff, da die Speicheradresse eines bestimmten Elements berechnet werden kann, indem sie den Index des Elements mit der Größe eines Elements multiplizieren und das Ergebnis der Basisadresse des Arrays hinzufügen. Arrays sind jedoch sehr teuer, wenn Sie Elemente in das Array einfügen müssen, da alle nachfolgenden Elemente verschoben werden müssen, um Platz für das neue Element zu schaffen. Arrays können nach Bedarf wachsen und schrumpfen.

Listen ähneln Arrays, werden aber sehr unterschiedlich gespeichert. Jedes Element in einer Liste enthält auch einen Zeiger auf das vorherige und das nächste Element, wodurch es eine doppelt verkettete Liste wird. Es ist sehr schnell, Elemente hinzuzufügen oder zu löschen, da dies nur das Ändern einiger Zeiger erfordert. Das Durchsuchen einer Liste kann jedoch teuer sein, da alle Suchvorgänge an einem der Enden der Liste beginnen müssen.

Karten verknüpfen einen Schlüsselwert mit einem Datenwert. Beispielsweise könnte der Schlüssel einer Abbildung eine Zeichenfolge sein und die Daten ein Zeiger in eine Liste. Sie würden die Karte bitten, Ihnen den Zeiger zu geben, der einer bestimmten Zeichenfolge zugeordnet ist. Kartensuchvorgänge sind schnell, da Karten Hashtabellen für Schlüsselsuche verwenden. Das Hinzufügen und Löschen von Elementen ist ebenfalls schnell. Karten werden häufig mit anderen Datenstrukturen als Hilfsindizes verwendet. MFC verwendet eine spezielle Art von Zuordnung, die Message-Map, um Windows Nachrichten einem Zeiger auf die Handler-Funktion für diese Nachricht zuzuordnen.

Siehe auch

Klassenübersicht