Kolekcje
Biblioteka klas Microsoft Foundation udostępnia klasy kolekcji można zarządzać grupami obiektów.Te klasy są dwa typy:
Klasy zbioru utworzone z szablonów języka C++
Klasy kolekcji nie zostały utworzone z szablonów
[!UWAGA]
Jeśli kod używa już klasy kolekcji nontemplate, można kontynuować korzystanie z nich.Jeśli piszesz nowych klas bezpiecznego typu kolekcji dla własne typy danych, zaleca się używanie nowsze klas opartych na szablonie.
Kolekcja kształtów
Klasa kolekcji jest określony przez jego "kształt" i typów elementów.Kształt odwołuje się do sposobu obiektów są zorganizowane i przechowywane przez kolekcję.MFC zawiera trzy kształty podstawowe kolekcji: list, tablic i map (znany również jako słowniki).Można wybrać kształt kolekcji, która jest najbardziej odpowiednia dla określonego problemu programowania.
Pokrótce dalej w tym temacie opisano każdy z trzech kształtów podanej kolekcji.Aby porównać funkcje kształtów, aby określić, który jest najlepszy dla programu, zobacz Zalecenia dotyczące wyboru klasy kolekcji.
Lista
Klasy list zawiera uporządkowaną listę nieindeksowanych elementy implementowane jako podwójnie połączonej listy.Lista ma "głową" i "ogona" 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 średnich, uporządkowanej i indeksowane przez całkowitą tablicę obiektów.
Mapa (Słownik)
Mapa jest kolekcja kojarzy obiekt klucza z obiektu wartości.
Klasy zbioru opartych na szablonie
Najłatwiejszym sposobem realizowania zawierającą obiekty dowolnego typu kolekcji typ palety jest użyć jednej z klas MFC opartych na szablonie.Przykłady tych klas można znaleźć w próbce MFC zbierania.
Poniższa tabela zawiera listę klas MFC kolekcja opartych na szablonie.
Kolekcja szablonu klasy
Zawartość kolekcji |
Tablice |
Wyświetla listę |
Mapy |
---|---|---|---|
Kolekcje obiektów dowolnego typu |
CArray |
CList |
CMap |
Kolekcje wskaźniki do obiektów dowolnego typu |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Klasy zbioru nie są oparte na szablonach
Jeśli aplikacja już wykorzystuje MFC nontemplate klasy, można kontynuować korzystanie z nich.Dla nowych kolekcji zaleca używanie klas opartych na szablonie.Poniższa tabela zawiera listę klas MFC kolekcji, które nie są oparte na szablonach.
Klasy zbioru nontemplate
Tablice |
Wyświetla listę |
Mapy |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
Tabela właściwości MFC, Kolekcja klas w Zalecenia dotyczące wyboru klasy kolekcji zawiera opis klas MFC kolekcji pod względem cech tych (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 można zatopienia Diagnostics
Czy kolekcja jest typ palety