Třídy pole, seznamu a mapy
Pro zpracování agregací dat poskytuje knihovna tříd skupinu tříd kolekcí – pole, seznamy a mapy – které mohou obsahovat celou řadu objektů a předdefinovaných typů. Kolekce jsou dynamicky velké. Tyto třídy lze použít v libovolném programu bez ohledu na to, zda jsou napsané pro Windows nebo ne. Jsou však nejužitečnější pro implementaci datových struktur, které definují třídy dokumentů v aplikačním rozhraní. Z těchto tříd můžete snadno odvodit specializované třídy kolekcí nebo je můžete vytvořit na základě tříd šablony. Další informace o těchto přístupech najdete v článku Kolekce. Seznam tříd kolekce šablon najdete v článku Třídy šablon pro pole, seznamy a Mapy.
Pole jsou jednorozměrné datové struktury, které jsou uloženy souvisle v paměti. Podporují velmi rychlý náhodný přístup, protože adresu paměti libovolného daného prvku lze vypočítat vynásobením indexu prvku velikostí prvku a přidáním výsledku na základní adresu pole. Pole jsou ale velmi drahá, pokud potřebujete vložit prvky do pole, protože celé pole za vložený prvek musí být přesunuto, aby bylo místo pro prvek, který se má vložit. Pole se můžou podle potřeby zvětšit a zmenšit.
Seznamy se podobají polím, ale ukládají se velmi odlišně. Každý prvek v seznamu obsahuje také ukazatel na předchozí a další prvky, což z něj dělá doubly propojený seznam. Přidávání nebo odstraňování položek je velmi rychlé, protože to zahrnuje pouze změnu několika ukazatelů. Hledání v seznamu ale může být nákladné, protože všechna hledání musí začínat na jednom z konců seznamu.
Mapy propojit hodnotu klíče s datovou hodnotou. Například klíč mapy může být řetězec a data ukazatelem na seznam. Požádejte mapu, aby vám poskytla ukazatel přidružený k určitému řetězci. Vyhledávání map je rychlé, protože mapy používají pro vyhledávání klíčů tabulky hash. Přidávání a odstraňování položek je také rychlé. Mapy se často používají s jinými datovými strukturami jako pomocné indexy. MFC používá speciální druh mapy označovaný jako mapa zpráv k mapování zpráv systému Windows na ukazatel na funkci obslužné rutiny pro tuto zprávu.