Klasy tablic, list i map
W przypadku obsługi agregacji danych biblioteka klas udostępnia grupę klas kolekcji — tablice, listy i mapy — które mogą zawierać różne typy obiektów i wstępnie zdefiniowanych typów. Kolekcje mają dynamicznie rozmiar. Te klasy mogą być używane w dowolnym programie, niezależnie od tego, czy są napisane dla systemu Windows, czy nie. Są one jednak najbardziej przydatne do implementowania struktur danych, które definiują klasy dokumentów w strukturze aplikacji. Możesz łatwo utworzyć wyspecjalizowane klasy kolekcji na podstawie tych klas lub utworzyć je na podstawie klas szablonów. Aby uzyskać więcej informacji na temat tych podejść, zobacz artykuł Kolekcje. Aby uzyskać listę klas kolekcji szablonów, zobacz artykuł Klasy szablonów dla tablic, list i Mapy.
Tablice to jednowymiarowe struktury danych, które są przechowywane stale w pamięci. Obsługują bardzo szybki dostęp losowy, ponieważ adres pamięci dowolnego elementu można obliczyć przez pomnożenie indeksu elementu przez rozmiar elementu i dodanie wyniku do podstawowego adresu tablicy. Jednak tablice są bardzo kosztowne, jeśli trzeba wstawić elementy do tablicy, ponieważ cała tablica obok wstawionego elementu musi zostać przeniesiona, aby miejsce na element do wstawienia. Tablice mogą rosnąć i zmniejszać w razie potrzeby.
Listy są podobne do tablic, ale są przechowywane bardzo inaczej. Każdy element na liście zawiera również wskaźnik do poprzednich i następnych elementów, dzięki czemu jest to podwójnie połączona lista. Bardzo szybko można dodawać lub usuwać elementy, ponieważ polega to tylko na zmianie kilku wskaźników. Jednak wyszukiwanie listy może być kosztowne, ponieważ wszystkie wyszukiwania muszą zaczynać się od jednego z końców listy.
Mapy powiązać wartość klucza z wartością danych. Na przykład klucz mapy może być ciągiem, a dane wskaźnikiem na liście. Należy poprosić mapę o podanie wskaźnika skojarzonego z określonym ciągiem. Wyszukiwanie map jest szybkie, ponieważ mapy używają tabel skrótów dla odnośników kluczy. Dodawanie i usuwanie elementów jest również szybkie. Mapy są często używane z innymi strukturami danych jako indeksami pomocniczymi. MFC używa specjalnego rodzaju mapy nazywanej mapą komunikatów, aby zamapować komunikaty systemu Windows na wskaźnik do funkcji obsługi dla tego komunikatu.