Sdílet prostřednictvím


Doporučení pro výběr třídy kolekce

Tento článek obsahuje podrobné informace, které můžete zvolit kolekce třídy pro potřeby konkrétní aplikace.

Výběr třídy kolekce závisí na mnoha faktorech, včetně:

  • Funkce obrazec Třída: pořadí, indexování a výkon, jak je znázorněno Tvaru funkce kolekce tabulce dále v tomto tématu

  • 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

V následující tabulce Tvaru funkce kolekce, shrnuje vlastnosti dostupné kolekce obrazců.

  • Sloupce 2 a 3 popisují každý obrazec objednávání a charakteristiky přístup.V tabulce "objednáno" rozumí, že určuje pořadí, ve kterém jsou položky vkládání a odstraňování jejich pořadí v kolekci; To neznamená, že položky jsou seřazeny na jejich obsah.Termín "indexovaných" znamená, že položky v kolekci může načíst celé číslo indexu, podobně jako typické pole položky.

  • Sloupce 4 a 5 popisují výkon každého obrazce.V aplikacích, které vyžadují mnoho vkládání do kolekce může být rychlost vkládání zvláště důležité. pro jiné aplikace může být důležitější rychlost vyhledávání.

  • Sloupec 6 popisuje, zda každý obrazec může obsahovat duplicitní prvky.

Funkce kolekce obrazce

Tvar

Objednané?

Indexovány?

Vložte element

Zadaný prvek hledání

Duplicitní prvky?

Seznam

Ano

Ne

Rychlé

Zpomalit

Ano

Pole

Ano

Podle int

Zpomalit

Zpomalit

Ano

Mapa

Ne

Klíčem

Rychlé

Rychlé

Žádné (klíče) Ano (hodnoty)

V následující tabulce Vlastnosti třídy kolekce MFC, shrnuje jako vodítko pro výběr jiné důležité charakteristiky určité kolekce tříd MFC.Volba může záviset na zda třídy podle šablony jazyka C++, zda její prvky lze serializovat pomocí MFC v dokumentu serializace mechanismu, zda můžete prostřednictvím mechanismu diagnostické dumpingové a MFC dumpingové jeho prvků, nebo zda třídy typu bezpečné –, zda lze zaručit typ prvky uložené v a načtena z kolekce založené na třídě.

Vlastnosti kolekce tříd MFC

Třída

Používá C++

šablony

Může být

serializovat

Může být

dumping

Je

Typ bezpečné

CArray

Ano

Ano, 1

Ano, 1

Ne

CByteArray

Ne

Ano

Ano

Ano 3

CDWordArray

Ne

Ano

Ano

Ano 3

CList

Ano

Ano, 1

Ano, 1

Ne

CMap

Ano

Ano, 1

Ano, 1

Ne

CMapPtrToPtr

Ne

Ne

Ano

Ne

CMapPtrToWord

Ne

Ne

Ano

Ne

CMapStringToOb

Ne

Ano

Ano

Ne

CMapStringToPtr

Ne

Ne

Ano

Ne

CMapStringToString

Ne

Ano

Ano

Ano 3

CMapWordToOb

Ne

Ano

Ano

Ne

CMapWordToPtr

Ne

Ne

Ano

Ne

CObArray

Ne

Ano

Ano

Ne

CObList

Ne

Ano

Ano

Ne

CPtrArray

Ne

Ne

Ano

Ne

CPtrList

Ne

Ne

Ano

Ne

CStringArray

Ne

Ano

Ano

Ano 3

CStringList

Ne

Ano

Ano

Ano 3

CTypedPtrArray

Ano

Závisí 2

Ano

Ano

CTypedPtrList

Ano

Závisí 2

Ano

Ano

CTypedPtrMap

Ano

Závisí 2

Ano

Ano

CUIntArray

Ne

Ne

Ano

Ano 3

CWordArray

Ne

Ano

Ano

Ano 3

1.Chcete-li serializovat, musíte explicitně volat objektu kolekce Serialize funkce; Chcete-li vypsat, musíte explicitně volat jeho Dump funkce.Formulář nelze použít ar << collObj serializace nebo dmp<< collObj pro výpis.

2.Sériovost závisí na podkladové typ kolekce.Například pole zadaný ukazatel je založena na CObArray, je serializovatelný; Pokud na základě CPtrArray, není serializovatelný."Ptr" třídy obecně nelze serializovat.

3.Pokud označení Ano v tomto sloupci, kolekce třídy nontemplate je typ bezpečné používají určené.Například ukládání bajtů CByteArray, je pole Typ bezpečné.Ale pokud použít k ukládání znaků, jeho typ bezpečnosti určitých méně.

Viz také

Úkoly

Přístup ke všem členům kolekce

Koncepty

Kolekce

Podle šablony třídy

Jak: vytvoření bezpečné typ kolekce