Kolekcje
Biblioteka klas Microsoft Foundation udostępnia klasy kolekcji do zarządzania grupami obiektów.Te klasy są dwa typy:
W klasach kolekcji utworzone z szablonów języka C++
W klasach kolekcji nie są tworzone na podstawie szablonów
[!UWAGA]
Jeśli kod używa już nontemplate kolekcja klas, można nadal z nich korzystać.Jeśli piszesz nowych klas Kolekcja typ palety dla własne typy danych, zaleca się, że używasz nowszej klas opartych na szablonie.
Kolekcja kształtów
Klasa kolekcji charakteryzuje się jego "kształt" i typami jego elementów.Kształt okreola sposób obiekty są zorganizowane i przechowywane przez kolekcję.MFC zawiera trzy kształty podstawowe kolekcji: list, tablic i mapy (znany również jako słowniki).Możesz wybrać kształt kolekcji, który jest najbardziej odpowiednia dla określonego problemu programowania.
Każdy z trzech kształtów Podana kolekcja opisano pokrótce dalej w tym temacie.Aby porównać funkcje kształty, które mają pomóc w podjęciu decyzji, który jest najlepszy dla programu, zobacz Zalecenia dotyczące wybierania klasy kolekcji.
List
Klasy list zawiera zamówione, nieindeksowanych wykaz elementów, zaimplementowany jako podwójnie połączonej listy.Lista "głową" i "ogon" i dodawanie lub usuwanie elementów z głowy lub ogona, lub wstawianie lub usuwanie elementów w środku, jest bardzo szybko.
Tablica
Klasa array zawiera dynamicznie wielkości, uporządkowanej i indeksowane całkowitą tablicy obiektów.
Mapa (Słownik)
Mapa jest kolekcją, który kojarzy obiekt główny z obiektem wartości.
W klasach kolekcji opartych na szablonie
Aby skorzystać z jednej z klas MFC oparty na szablonie jest najłatwiejszym sposobem realizowania Kolekcja typ palety, która zawiera obiekty dowolnego typu.Przykłady tych klas, zobacz próbki MFC zbierania.
Poniższa tabela zawiera listę klas MFC kolekcja opartych na szablonie.
Kolekcja szablonów klas
Zawartość kolekcji |
Tablice |
Listy |
Mapy |
---|---|---|---|
Kolekcje obiektów dowolnego typu |
CArray |
CList |
CMap |
Kolekcje wskaźniki do obiektów dowolnego typu |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
W klasach kolekcji nie oparte na szablonach
Jeśli aplikacja już używa klasy MFC nontemplate, można było ich używać.Dla nowych kolekcji, zaleca czy używasz klas opartych na szablonie.Poniższa lista zawiera kolekcja klas MFC, które nie są oparte na szablonach.
W klasach kolekcji nontemplate
Tablice |
Listy |
Mapy |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
W tabeli właściwości klasy zbioru MFC Zalecenia dotyczące wybierania klasy kolekcji zawiera opis klasy MFC kolekcji pod względem tych cech (inne niż kształt):
Czy klasa używa szablonów języka C++
Czy można szeregować elementy przechowywane w kolekcji
Czy elementy przechowywane w kolekcji mogą być składowane Diagnostics
Czy kolekcja jest typ palety