multiset (STL/CLR)
Třída šablony popisuje objekt, který ovládá různé délky posloupnost prvků, která má obousměrný přístup.Použití kontejneru multiset ke správě pořadí prvků jako (téměř) vyvážené uspořádaný strom uzlů, každý ukládání jednoho prvku.
V popisu níže GValue je stejný jako GKey, který je stejný jako Key Pokud je typ odkazu, v takovém případě je Key^.
template<typename Key>
ref class multiset
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
Parametry
- Klíč
Typ klíčovou součástí prvek v kontrolovaných sekvenci.
Členy
Definice typu |
Popis |
---|---|
Typ konstantního iterátoru řízené sekvence. |
|
Typ konstantního odkazu na prvek. |
|
Typ konstantní zpětného iterátor pro řízené sekvenci. |
|
Typ (pravděpodobně podepsaný) vzdálenost mezi dvěma prvky. |
|
Typ obecné rozhraní pro kontejner. |
|
Typ iterátor pro obecné rozhraní pro kontejner. |
|
Typ zpětného iterátor pro obecné rozhraní pro kontejner. |
|
Typ elementu pro obecné rozhraní pro kontejner. |
|
Typ iterátoru řízené sekvence. |
|
Objednávání delegát pro dva klíče. |
|
Typ klíče řazení. |
|
Typ odkazu na prvek. |
|
Typ zpětného iterátor pro řízené sekvenci. |
|
Typ (kladné) vzdálenost mezi dvěma prvky. |
|
Objednávání delegát pro dvě hodnoty prvku. |
|
Typ prvku. |
Členská funkce |
Popis |
---|---|
Označí začátek řízené sekvenci. |
|
Odebere všechny prvky. |
|
Počítá prvky odpovídající zadaným klíčem. |
|
Zkoušky zda jsou žádné prvky obsahují. |
|
Označí konci řízené sekvence. |
|
Zjistí rozsah, který odpovídá zadaným klíčem. |
|
Odebere prvky v určených polohách. |
|
Vyhledá prvek, který odpovídá zadaným klíčem. |
|
Přidá prvky. |
|
Zkopíruje objednávání delegát pro dva klíče. |
|
Začátek zjistí rozsah, který odpovídá zadaným klíčem. |
|
Vytvoří objekt hodnoty. |
|
Vytvoří objekt kontejneru. |
|
Označí začátek řízené obrácené pořadí. |
|
Označí konci obrácené řízené sekvence. |
|
Vrátí počet prvků. |
|
Zamění obsah dvou kontejnerů. |
|
Řízené sekvenci se zkopíruje do nového pole. |
|
Zjistí-li konec rozsahu, který odpovídá zadaným klíčem. |
|
Zkopíruje objednávání delegát pro dvě hodnoty prvku. |
Operátor |
Popis |
---|---|
Nahradí řízené sekvenci. |
|
Určuje, zda multiset objekt není rovno druhé multiset objektu. |
|
Určuje, zda multiset objekt je menší než jiný multiset objektu. |
|
Určuje, zda multiset objekt je menší než nebo rovno druhé multiset objektu. |
|
Určuje, zda multiset objekt je rovno druhé multiset objektu. |
|
Určuje, zda multiset je větší než jiný objekt multiset objektu. |
|
Určuje, zda multiset objekt je větší než nebo rovno druhé multiset objektu. |
Rozhraní
Rozhraní |
Popis |
---|---|
Duplicitní objekt. |
|
Úsek mezi prvky. |
|
Udržujte skupiny prvků. |
|
Úsek přes zadaný prvky. |
|
Udržujte skupiny typových prvků. |
|
ITree<klíč, hodnota> |
Udržujte obecný kontejner. |
Poznámky
Objekt přiděluje a uvolňuje úložiště pro sekvence, které ovládá jako jednotlivé uzly.Vloží prvky na (téměř) vyvážený strom, který udržuje uspořádaný změnou propojení mezi uzly nikdy zkopírováním obsahu z jednoho uzlu do druhého.To znamená, že můžete vložit a odebrat prvky volně bez narušení zbývající prvky.
Objekt příkazy sekvence ovládá pomocí volání uložené delegát objekt typu multiset::key_compare (STL/CLR).Uložené delegát objekt můžete určit při vytváření multimnožina; -li zadán žádný objekt delegáta, výchozí hodnota je porovnání operator<(key_type, key_type).Přístup k této uložené objekt voláním členské funkce multiset::key_comp (STL/CLR)().
Takový objekt delegáta musí ukládat přísné slabé objednání na klíče typ multiset::key_type (STL/CLR).To znamená pro libovolné dva klíče X a Y:
key_comp()(X, Y)Vrátí výsledek stejné logická hodnota při každém volání.
Pokud key_comp()(X, Y) je true, pak key_comp()(Y, X) musí být false.
Pokud key_comp()(X, Y) je true, pak X se říká objednat před Y.
Pokud !key_comp()(X, Y) && !key_comp()(Y, X) je true, pak X a Y jsou tvrdil, že mají odpovídající řazení.
Pro každý prvek X , předchází Y v řízené sekvenci key_comp()(Y, X) false. (U objektu výchozí delegáta klíče nikdy sníží hodnota.) Na rozdíl od šablony třídy set (STL/CLR), objekt třídy šablony multiset nevyžaduje, že jsou jedinečné klíče pro všechny prvky. (Dvě nebo více kláves mohou mít ekvivalentní řazení.)
Každý prvek slouží jako ey a hodnotu.Pořadí je reprezentován způsobem, který umožňuje vyhledávání, vložení a odebrání libovolného prvku s počet operací, které jsou úměrné logaritmu počtu prvků v posloupnosti (logaritmické času).Kromě toho vložení prvku přestanou platit žádné iterátory a odebrání prvku zruší platnost pouze iterátory, které odkazují na odebraný prvek.
Multimnožina podporuje obousměrné iterátory, což znamená, že jste se přesunuli do sousedící prvky uvedené iterace, který určuje prvek v kontrolovaných sekvenci.Speciální hlavního uzlu odpovídá iterátor vrácené multiset::end (STL/CLR)().Tento iterační dosáhnout poslední prvek v kontrolovaných sekvenci, lze snížit, pokud je k dispozici.Můžete zvýšit Multimnožinové iterátor pro dosažení hlavního uzlu a bude pak porovnat rovná end().Ale nelze přistoupit přes ukazatel vrácené iterace end().
Všimněte si, že nemůže odkazovat na prvek Multimnožinové přímo uvedeny číselné pozice – která vyžaduje iterační náhodný přístup.
Multimnožinové iterátor obsahuje úchyt na jeho přidružený Multimnožinové uzlu, který zase obsahuje úchyt na jeho přidružené kontejnerové.U iterátorů lze použít pouze jejich přidružené kontejnerové objekty.Multimnožinové iterátor zůstává v platnosti tak dlouho, dokud jeho přidružený uzel Multimnožinové některé multimnožina přidružen.Navíc platný iterátor je dereferencable – slouží k přístupu nebo změnit hodnotu prvku jmenuje--tak dlouho, dokud není rovno end().
Mazání nebo odebrání prvku volání destruktoru jeho uložené hodnoty.Zničení kontejneru vymaže všechny prvky.Kontejner, jehož typ prvku ref class tedy zajišťuje, že žádné prvky outlive kontejneru.Uvědomte si však, že kontejner úchyty se not zničit jeho prvků.
Požadavky
Záhlaví:<cliext/set>
Obor názvů: cliext