Share via


Kolekce

Knihovna tříd služby Microsoft Foundation poskytuje třídy kolekcí pro správu skupin objektů. Tyto třídy mají dva typy:

Poznámka

Pokud váš kód již používá třídy kolekce nontemplate, můžete je dál používat. Pokud píšete nové třídy kolekcí bezpečných typů pro vlastní datové typy, doporučujeme použít novější třídy založené na šablonách.

Obrazce kolekce

Třída kolekce je charakterizována svým "tvarem" a typy jeho prvků. Obrazec odkazuje na způsob uspořádání a ukládání objektů kolekcí. MFC poskytuje tři základní obrazce kolekce: seznamy, matice a mapy (označované také jako slovníky). Můžete vybrat obrazec kolekce, který je nejvhodnější pro váš konkrétní programovací problém.

Každý ze tří zadaných obrazců kolekce je stručně popsán dále v tomto tématu. Pokud chcete porovnat funkce obrazců, které vám pomůžou rozhodnout, která je pro váš program nejvhodnější, podívejte se na doporučení pro výběr třídy kolekce.

  • Seznam

    Třída seznamu poskytuje uspořádaný, neindexovaný seznam prvků, implementovaný jako doubly propojený seznam. Seznam má "hlavu" a "ocas", a přidávání nebo odebírání prvků z hlavy nebo ocasu, nebo vkládání nebo odstraňování prvků uprostřed, je velmi rychlé.

  • Pole

    Třída pole poskytuje dynamicky velikost, seřazené a celočíselné indexované pole objektů.

  • Mapa (označovaná také jako slovník)

    Mapa je kolekce, která přidruží objekt klíče k objektu hodnoty.

Třídy kolekce založené na šablonách

Nejjednodušší způsob, jak implementovat typově bezpečnou kolekci, která obsahuje objekty libovolného typu, je použít jednu z tříd založených na šabloně MFC. Příklady těchto tříd naleznete v ukázce MFC COLLECT.

Následující tabulka uvádí třídy kolekcí založené na šablonách MFC.

Třídy šablon kolekce

Obsah kolekce Pole Seznamy Mapy
Kolekce objektů libovolného typu CArray CList CMap
Kolekce ukazatelů na objekty libovolného typu CTypedPtrArray CTypedPtrList CTypedPtrMap

Třídy kolekce, které nejsou založené na šablonách

Pokud vaše aplikace již používá netemplate třídy MFC, můžete je dál používat. U nových kolekcí však doporučujeme používat třídy založené na šablonách. Následující tabulka uvádí třídy kolekce MFC, které nejsou založené na šablonách.

Nontemplate Collection – třídy

Pole Seznamy Mapy
CObArray CObList CMapPtrToWord
CByteArray CPtrList CMapPtrToPtr
CDWordArray CStringList CMapStringToOb
CPtrArray CMapStringToPtr
CStringArray CMapStringToString
CWordArray CMapWordToOb
CUIntArray CMapWordToPtr

Charakteristiky tabulky tříd kolekcí MFC v tabulce Doporučení pro volbu třídy kolekce popisuje třídy kolekce MFC z hlediska těchto charakteristik (jiné než obrazce):

  • Zda třída používá šablony jazyka C++

  • Zda lze serializovat prvky uložené v kolekci

  • Určuje, jestli lze prvky uložené v kolekci vyhodit pro diagnostiku.

  • Zda je kolekce bezpečná pro typ

Co chcete udělat

Obecné úlohy třídy kolekce

Úlohy třídy kolekce založené na šablonách

Přístup ke členům kolekce (založené na šablonách nebo ne)

Viz také

Koncepty
Obecná témata MFC