Sdílet prostřednictvím


Sbírky

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.

Tvary 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í typy kolekcí: seznamy, pole 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 dvojnásobně 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 kolekcí Template-Based

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.

Šablonové třídy pro 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.

Netemplátové kolekční třídy

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

Tabulka Doporučení pro volbu třídy kolekce popisuje třídy kolekcí MFC z hlediska těchto charakteristik (kromě tvaru):

  • 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 typově bezpečná

Co chcete udělat

Úkoly Collection-Class obecné

Template-Based Collection-Class úkoly

Přístup ke členům kolekce (Template-Based nebo ne)

Viz také

Koncepty
Obecná témata MFC