Sdílet prostřednictvím


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

Co chcete udělat?

Obecné třídy kolekcí úkoly

Kolekce třídy založené na šablonách úlohy

Přístup k členy kolekce (založený na šabloně nebo ne)

Viz také

Koncepty

Obecná témata MFC

Další zdroje

MFC – koncepce