Kolekce
Knihovny Microsoft Foundation Class poskytuje kolekci třídy ke správě skupin objektů.Tyto třídy jsou dva typy:
Kolekce třídy vytvořené ze šablony jazyka C++
Kolekce třídy nebyla vytvořena z šablony
[!POZNÁMKA]
Pokud váš kód již používá kolekce tříd nontemplate, mohou nadále používat.Zápis nových tříd bezpečné typ kolekce pro vlastní datové typy, doporučujeme používat novější tříd založených na šabloně.
Kolekce obrazců
Kolekce třídy se vyznačuje jeho "tvar" a typy jeho prvky.Obrazec odkazuje na způsob objekty jsou uspořádány a uloženy v kolekci.MFC poskytuje tři základní kolekce obrazců: seznamy, maticových a map (slovníky).Můžete vybrat kolekce tvar, který je nejvhodnější pro váš konkrétní problém programování.
Každá ze tří tvarů zadané kolekce je popsána krátce dále v tomto tématu.Porovnání funkcí obrazce, které vám pomohou rozhodnout, která je nejvhodnější pro váš program, viz Doporučení pro výběr třídy kolekce.
Seznam
Třída seznam poskytuje objednané neindexovaných seznam prvků, které jsou implementovány jako dvakrát propojeného seznamu.Seznam obsahuje "hlavy" a "zadní" a je velmi rychlé přidání nebo odebrání prvků z hlavy nebo ocasu, nebo vložení nebo odstranění prvků uprostřed.
Pole
Třída array poskytuje dynamicky podle velikosti, objednané a celé indexované pole objektů.
Mapa (také známé jako slovníku)
Mapa je kolekce, která přidružuje objekt hodnoty klíče objektu.
Kolekce třídy založený na šabloně
Nejjednodušší způsob provedení bezpečné typ kolekce obsahující objekty typu je použití jedné ze tříd MFC založený na šabloně.Příklady těchto tříd naleznete v tématu MFC vzorku SHROMÁŽDĚNÍ.
Následující tabulka uvádí tříd MFC kolekce založené na šabloně.
Kolekce třídy šablon
Obsah kolekce |
Matice |
Seznamy |
Mapy |
---|---|---|---|
Kolekce objektů libovolného typu |
CArray |
CList |
CMap |
Kolekce objektů libovolného typu ukazatele |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Kolekce třídy, které nejsou založeny na šablonách
Pokud již aplikace používá nontemplate tříd MFC, mohou nadále používat.Pro nové kolekce doporučujeme však používat tříd založených na šabloně.Následující tabulka uvádí kolekce tříd MFC, které nejsou založeny na šablonách.
Kolekce třídy nontemplate
Matice |
Seznamy |
Mapy |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
Tabulka charakteristiky z MFC kolekce tříd v Doporučení pro výběr třídy kolekce popisuje kolekce tříd MFC z hlediska těchto charakteristik (jiné než obrazec):
Zda používá třída šablony jazyka C++
Zda lze serializovat prvky v kolekci uloženo
Zda lze vypsat prvky v kolekci uloženo pro diagnostiku
Je bezpečné typ kolekce