multiset (STL/CLR)
Popisuje šablony třídy objektu, který řídí různé délky posloupnost prvků, která má obousměrný přístup.Použití kontejneru multiset pořadí prvků jako objednané (téměř) vyvážený strom uzlů, správa jednotlivých ukládání jeden prvek.
V popisu níže GValue je stejný jako GKey, který je stejný jako Key , není tento 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íče součásti prvku řízené sekvence.
Členy
Definice typu |
Description |
---|---|
Typ konstantní iterační řízené posloupnosti. |
|
Typ konstantní odkaz na element. |
|
Typ konstantní zpětného iterační řízené posloupnosti. |
|
Typ (případně podepsaný) vzdálenost mezi dvěma prvky. |
|
Typ kontejneru obecné rozhraní. |
|
Typ iterace obecné rozhraní pro kontejner. |
|
Typ zpětného iterační obecné rozhraní pro kontejner. |
|
Typ prvku obecné rozhraní kontejneru. |
|
Typ iterace řízené posloupnosti. |
|
Objednávání delegát dva klíče. |
|
Typ řazení klíč. |
|
Typ odkazu na prvek. |
|
Typ zpětného iterační řízené posloupnosti. |
|
Typ (kladné) vzdálenost mezi dvěma prvky. |
|
Objednávání delegát dvě hodnoty prvku. |
|
Typ prvku. |
Členská funkce |
Description |
---|---|
Označí začátek řízené sekvence. |
|
Odebere všechny prvky. |
|
Zadaný klíč odpovídající počítá. |
|
Zkoušky, zda jsou žádné prvky prezentovat. |
|
Označí konec řízené sekvence. |
|
Najde rozsah, který odpovídá zadaným klíčem. |
|
Odebere prvky v určených polohách. |
|
Najde zadaný klíč odpovídající prvek. |
|
Přidá prvky. |
|
Zkopíruje objednávání delegáta pro dva klíče. |
|
Vyhledá začátek rozsahu, který odpovídá zadaným klíčem. |
|
Vytvoří objekt hodnoty. |
|
Konstrukce objektu kontejneru. |
|
Označí začátek řízené obrácené pořadí. |
|
Označí konec obrácené pořadí řízené. |
|
Vrátí počet prvků. |
|
Zamění obsah dva kontejnery. |
|
Řízené sekvence se zkopíruje do nového pole. |
|
Vyhledá konec rozsahu, který odpovídá zadaným klíčem. |
|
Zkopíruje objednávání delegáta pro dvě hodnoty prvku. |
Operátor |
Description |
---|---|
Nahradí řízené sekvence. |
|
Určuje, zda multiset objektu není rovna jiné multiset objektu. |
|
Určuje, zda multiset objektu je menší než jiné multiset objektu. |
|
Určuje, zda multiset objekt je menší nebo rovna jiné multiset objektu. |
|
Určuje, zda multiset je rovna jiného objektu multiset objektu. |
|
Určuje, zda multiset je větší než jiný objekt multiset objektu. |
|
Určuje, zda multiset objekt je větší než nebo rovna hodnotě jiného multiset objektu. |
Rozhraní
Rozhraní |
Description |
---|---|
Duplikujte objekt. |
|
Úsek mezi prvky. |
|
Zachovat skupiny prvků. |
|
Pořadové prostřednictvím typové prvky. |
|
Zachovat skupiny zadané prvků. |
|
ITree < klíč, hodnota > |
Udržují generic kontejneru. |
Poznámky
Objekt přiděluje a uvolní úložiště pro sekvence, které ovládá jako jednotlivé uzly.Prvky se vloží do stromu (téměř) Rovnováha, který udržuje uspořádaný změnou propojení mezi uzly nikdy zkopírováním obsahu z jednoho uzlu do druhého.To znamená, můžete vložit a odebrat prvky volně bez narušení zbývající prvky.
Objekt objednávky pořadí ovládacích prvků voláním uložené delegát objekt typu multiset::key_compare (STL/CLR).Můžete určit objekt uložených delegátem při konstrukci multimnožina; Pokud nezadáte žádný objekt delegáta, výchozí hodnota je srovnání operator<(key_type, key_type).Přístup k objektu uložených voláním funkce členské multiset::key_comp (STL/CLR)().
Takový objekt delegát musí ukládat přísné slabé řazení klíče typu multiset::key_type (STL/CLR).To znamená pro všechny dva klíče X a Y:
key_comp()(X, Y)Vrátí výsledek stejný Boolean při každém volání.
Pokud key_comp()(X, Y) je PRAVDA, pak key_comp()(Y, X) musí být false.
Pokud key_comp()(X, Y) je PRAVDA, pak X se říká objednané před Y.
Pokud !key_comp()(X, Y) && !key_comp()(Y, X) je PRAVDA, pak X a Y jsou označeny mít rovnocenné objednávání.
Pro každý prvek X , předchází Y řízené postupně key_comp()(Y, X) hodnotu false.(Pro objekt výchozí delegáta, klíče nikdy sníží hodnota.) Na rozdíl od šablony třídy set (STL/CLR), objekt šablony třídy multiset nevyžaduje, že jsou jedinečné klíče pro všechny prvky.(Dvou nebo více kláves můžete mít rovnocenné objednávání.)
Každý prvek slouží jako ey a hodnotu.Pořadí je reprezentován způsobem, který umožňuje vyhledávání, vkládání a odstraňování libovolný prvek s počtem operací úměrný logaritmu počet prvků v posloupnosti (logaritmické času).Kromě vkládání prvek přestanou platit žádné u iterátorů a odebrání prvku zruší platnost pouze ty u iterátorů které na odebraný prvek.
Multimnožina podporuje obousměrný u iterátorů, což znamená, že můžete na sousedící prvky uvedené iterace, který určuje prvek řízené postupně krok.Zvláštní hlavního uzlu odpovídá iterační vrácené multiset::end (STL/CLR)().Tento iterační dosáhnout poslední prvek v pořadí řízené lze snížit přítomen.Multimnožinové iterační dosáhnout hlavního uzlu můžete zvýšit a potom bude porovnávat rovno end().Ale nelze zrušit reference struktury iterace vrácené end().
Všimněte si, že nemůže odkazovat na prvek Multimnožinové přímo dané číselné pozice--vyžadující iterační random access.
Multimnožinové iterační uloží popisovač do přidružených Multimnožinové uzlu, která zase uloží popisovač jeho přidružené kontejneru.U iterátorů lze použít pouze jejich přidružené kontejneru objektů.Multimnožinové iterační zůstává platné tak dlouho, dokud je spojen s multimnožina některé jeho přidružený uzel Multimnožinové.Kromě toho je platný iterační dereferencable – slouží k přístupu nebo změnit hodnotu prvku jmenuje--tak dlouho, dokud není rovno end().
Mazání nebo odebrání prvku volá jeho uložená hodnota se objekt.Zničení kontejneru vymaže všechny prvky.Kontejner, jehož typ prvku je třída ref tedy zajišťuje, že outlive žádné prvky kontejneru.Upozorňujeme však, že kontejner úchyty nemá not zničit jeho prvky.
Požadavky
Záhlaví: < cliext/set >
Obor názvů: cliext