Share via


Klassen für Arrays, Listen und Zuordnungen

Für die Behandlung von Datenaggregaten stellt die Klassenbibliothek eine Gruppe von Sammlungsklassen bereit – Arrays, Listen und Zuordnungen –, die eine Vielzahl von Objekten und vordefinierten Typen enthalten können. Die Auflistungen werden dynamisch angepasst. 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 das eingefügte Element über das gesamte eingefügte Element verschoben werden muss, um Platz für das einzufügende Element zu schaffen. Arrays können bei Bedarf vergrößert und verkleinern.

Listen ähneln Arrays, werden aber sehr unterschiedlich gespeichert. Jedes Element in einer Liste enthält auch einen Zeiger auf die vorherigen und nächsten Elemente, wodurch es zu einer doubly verknüpften 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 einen Schlüsselwert mit einem Datenwert verknüpfen. Beispielsweise könnte der Schlüssel einer Karte eine Zeichenfolge und die Daten sein, die ein Zeiger in eine Liste enthält. 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 als Nachrichtenzuordnung bezeichnet wird, um Windows-Nachrichten einem Zeiger auf die Handlerfunktion für diese Nachricht zuzuordnen.

Siehe auch

Klassenübersicht