Udostępnij za pośrednictwem


Kolekcje

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

Uwaga

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, które pomogą Ci zdecydować, co jest najlepsze dla programu, zobacz Rekomendacje wybieranie klasy kolekcji.

  • List

    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 rozmiar, uporządkowaną i indeksowaną liczbę całkowitą tablicy obiektów.

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

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

Klasy kolekcji oparte na szablonach

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 Listy Mapy
Kolekcje obiektów dowolnego typu CArray CList CMap
Kolekcje wskaźników do obiektów 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 nontemplate

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

Tabela Charakterystyki klas kolekcji MFC w Rekomendacje na potrzeby 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ć po cenach dumpingowych do diagnostyki

  • Czy kolekcja jest bezpieczna pod typem

Co chcesz zrobić

Ogólne zadania klasy kolekcji

Zadania klasy kolekcji oparte na szablonach

Uzyskiwanie dostępu do elementów członkowskich kolekcji (opartych na szablonach lub nie)

Zobacz też

Pojęcia
Tematy ogólne dotyczące MFC