Kolekce
Knihovny Microsoft Foundation Class poskytuje kolekce třídy pro správu skupin objektů.Tyto třídy jsou dvou typů:
Kolekce třídy vytvořené z šablony jazyka C++
Není vytvořený z šablony třídy kolekce
[!POZNÁMKA]
Pokud váš kód používá již nontemplate kolekce tříd, mohou nadále používat.Pokud napíšete nový typ kolekce třídy pro vlastní datové typy, doporučujeme použít novější šablonových tříd.
Kolekce obrazců
Kolekce třídy je rozdělení podle jeho "tvar" a typy jeho prvků.Obrazec představuje způsob objektů jsou uspořádány a uloženy v kolekci.Knihovna MFC poskytuje tři základní kolekce obrazců: seznamů, polí a mapuje (slovníky).Můžete vybrat tvar kolekce, která je nejvhodnější pro konkrétní programovací problém.
Každý ze tří tvarů zadané kolekce je popsán stručně dále v tomto tématu.Pokud chcete porovnat vlastnosti obrazce, které vám pomohou rozhodnout, která je nejvhodnější pro aplikace, viz Doporučení pro výběr třídy kolekce.
Seznam
Seznam tříd obsahuje seznam uspořádaný, neindexovaných prvků, které jsou implementovány jako dvakrát propojený seznam.Seznam obsahuje "head" a "ocas" a je velmi rychlé přidání nebo odebrání prvků z hlavy nebo ocasu, nebo vložení nebo odstranění prvků ve středu.
Pole
Třída array poskytuje dynamicky velikosti objednané a celé indexované pole objektů.
Mapa (označované také jako slovník)
Mapa je kolekce, která přidružuje objekt hodnoty klíče objektu.
Třídy kolekcí založených na předlohách
Nejjednodušší způsob, jak implementovat typ bezpečné kolekci, která obsahuje objekty jakéhokoliv typu, je použít jednu z tříd knihovny MFC založené na šablonách.Příklady těchto tříd naleznete v ukázce knihovny MFC sběr.
Následující tabulka uvádí třídy knihovny MFC založené na šablonách kolekce.
Třídy kolekcí šablony
Obsah kolekce |
Pole |
Seznamy |
Mapy |
---|---|---|---|
Kolekce objektů všech typů |
CArray |
CList |
CMap |
Kolekce odkazy na objekty jakéhokoliv typu |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Kolekce tříd, které nejsou založeny na šablonách
Pokud již vaše aplikace používá třídy knihovny MFC nontemplate, mohou nadále používat.Pro nové kolekce, doporučujeme však používat šablonových tříd.Následující tabulka uvádí kolekce tříd knihovny MFC, které nejsou založeny na šablonách.
Nontemplate kolekce tříd
Pole |
Seznamy |
Mapy |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
Vlastnosti ze třídy knihovny MFC kolekce tabulek v Doporučení pro výběr třídy kolekce popisuje kolekce tříd knihovny MFC s ohledem na tyto vlastnosti (s výjimkou obrazce):
Zda třída používá šablony jazyka C++
Zda lze serializovat prvky uložené v kolekci
Zda lze vypsat prvky uložené v kolekci pro diagnostiku
Zda je typově bezpečný kolekce