Udostępnij przez


Zbiory

Biblioteka klas programu Microsoft Foundation udostępnia klasy kolekcji do zarządzania grupami obiektów. Te klasy są dwoma typami:

Uwaga / Notatka

Jeśli kod używa już klas kolekcji innych niżtemplate, możesz nadal ich używać. W przypadku pisania nowych klas kolekcji bezpiecznych typów dla własnych typów danych zalecamy użycie nowszych klas opartych na szablonach.

Kształty kolekcji

Klasa kolekcji charakteryzuje się jej "kształtem" i typami elementów. Kształt odnosi się do sposobu organizowania i przechowywania obiektów przez kolekcję. MFC udostępnia trzy podstawowe kształty kolekcji: listy, tablice i mapy (znane również jako słowniki). Możesz wybrać kształt kolekcji, który jest najbardziej odpowiedni dla konkretnego problemu programistycznego.

Każdy z trzech dostarczonych kształtów kolekcji jest krótko opisany w dalszej części tego tematu. Aby porównać funkcje kształtów, aby ułatwić podjęcie decyzji, która jest najlepsza dla programu, zobacz Zalecenia dotyczące wybierania klasy kolekcji.

  • Lista

    Klasa list zawiera uporządkowaną, nieindeksowaną listę elementów zaimplementowaną jako podwójnie połączoną listę. Lista ma "głowę" i "ogon", a dodawanie lub usuwanie elementów z głowy lub ogona albo wstawianie lub usuwanie elementów w środku jest bardzo szybkie.

  • Tablica

    Klasa tablicy udostępnia dynamicznie rozmiarowaną, uporządkowaną i indeksowaną liczbami całkowitymi tablicę obiektów.

  • Mapa (znana również jako słownik)

    Mapa to kolekcja, która kojarzy obiekt klucza z obiektem wartości.

klasy kolekcji Template-Based

Najprostszym sposobem zaimplementowania bezpiecznej kolekcji typu zawierającej obiekty dowolnego typu jest użycie jednej z klas opartych na szablonach MFC. Przykłady tych klas można znaleźć w przykładzie COLLECT MFC.

W poniższej tabeli wymieniono klasy kolekcji oparte na szablonach MFC.

Klasy szablonów kolekcji

Zawartość kolekcji Tablice Listach Mapy
Kolekcje obiektów dowolnego typu CArray CList CMap
Kolekcje wskaźników na obiekty dowolnego typu CTypedPtrArray CTypedPtrList CTypedPtrMap

Klasy kolekcji nie oparte na szablonach

Jeśli aplikacja używa już klas nontemplate MFC, możesz nadal ich używać. Jednak w przypadku nowych kolekcji zalecamy używanie klas opartych na szablonach. W poniższej tabeli wymieniono klasy kolekcji MFC, które nie są oparte na szablonach.

Klasy kolekcji nieszablonowych

Tablice Listach Mapy
CObArray CObList CMapPtrToWord
CByteArray CPtrList CMapPtrToPtr
CDWordArray CStringList CMapStringToOb
CPtrArray CMapStringToPtr
CStringArray CMapStringToString
CWordArray CMapWordToOb
CUIntArray CMapWordToPtr

Tabela Charakterystyka klas kolekcji MFC w temacie Zalecenia dotyczące wybierania klasy kolekcji opisuje klasy kolekcji MFC pod względem tych cech (innych niż kształt):

  • Czy klasa używa szablonów języka C++

  • Czy elementy przechowywane w kolekcji mogą być serializowane

  • Czy elementy przechowywane w kolekcji mogą być wyładowane do diagnostyki

  • Czy kolekcja jest bezpieczna pod typem

Co chcesz zrobić

Ogólne zadania Collection-Class

zadania Template-Based Collection-Class

Uzyskiwanie dostępu do członków kolekcji (Template-Based lub nie)

Zobacz także

Pojęcia
Ogólne tematy MFC