set stl
Rychle se naučíte SET v STL s jednoduchými příklady.
Podíváme se podrobně na kontejner STL - sady, zde v tomto kurzu. Sady jsou asociativní kontejnery s jedinečnými prvky v určitém pořadí.
Hodnota prvku v sadě je také klíčem, který se k němu používá. Všechny prvky v sadě musí být jedinečné. Po vložení nemůžeme prvky v sadě upravit. Můžeme však prvky vložit nebo odstranit.
=> Zde si můžete prohlédnout kompletní sérii školení C ++ ZDARMA.
Co se naučíte:
NASTAVIT V STL
Chcete-li implementovat sadu, musíme do našeho programu zahrnout záhlaví.
co je flash soubor s rázovou vlnou
#include
Můžeme deklarovat sadu takto:
set myset;
Například,chceme-li sadu, myset prvku s celočíselným typem, můžeme sadu deklarovat jako:
set myset;
Operace jsou nastaveny
Kontejner sady také podporuje podobné operace, jako je mapa, o které jsme již hovořili. Následuje několik základních operací podporovaných sadou.
- začít : Vrátí iterátor na první prvek sady.
- konec : Vrátí iterátor k prvku, který následuje za posledním prvkem sady.
- vložit : Vloží nový prvek do sady.
Operace vložení pro sadu má tři varianty:
-
-
- insert (element): Toto přímo vloží prvek do sady a změní pořadí sady.
- vložka (poloha, nápověda): Zde určíme pozici pro vložení prvku.
- insert (iterator.begin (), iterator.end ()): V této variantě můžeme přímo vložit rozsah do množiny jako pole nebo jinou množinu.
-
- vymazat : Odstraní prvek ze sady.
- velikost : Vrátí velikost sady.
- max_size : Vrátí maximální velikost, kterou může sada pojmout.
- prázdný : Vrátí, zda je sada prázdná.
- Průhledná : Odstraní všechny prvky ze sady.
- nalézt : Najde prvek v sadě. Pokud je prvek nalezen, vrátí iterátor tomuto prvku v sadě. Pokud není nalezen, vrátí iterátor na konec sady.
Níže je uveden program, který demonstruje použití některých důležitých funkcí SET.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< Výstup:
Velikost myset: 4
Sada MySet je: 120 130 140 160
Po vložení 100 je sada myset: 100 120 130 140 160
Po vložení aretace pole je sada myset: 100 110 120 130 140 150 160
Po odebrání prvků méně než 130, myset: 130 140 150 160
Jak je znázorněno ve výstupu výše, vytvoříme sadu pomocí funkce jednoduché vložení.
zahrnují typy testování výpočetního systému
Dále vložíme prvek 100 do sady pomocí jiné varianty funkce vložení předáním odkazu iterátoru a hodnoty prvku 100. Vidíme, že jakmile je vložení hotové, sada je přeuspořádána a pořadí prvků je zachováno.
Dále vložíme pole {110,150,150} pomocí funkce vložení. Pokud vidíte výstup sady zobrazený po vložení pole, vidíme, že do sady je zadána pouze jedna hodnota 150. Je to proto, že všechny prvky v sadě jsou jedinečné.
Také zobrazujeme velikost sady. Dále pomocí funkce find najdeme prvky, které jsou menší než 130, a poté zavoláme funkci mazání, abychom tyto prvky odstranili. Potom zobrazíme výslednou množinu.
Toto je vše o nastaveném kontejneru. Dále probereme multiset, které rozšíření nastaveného kontejneru.
Multiset
Multiset je asociativní kontejner podobný nastavení ve všech aspektech s výjimkou jednoho rozdílu, tj. Více prvků může mít stejnou hodnotu.
Deklarace pro multiset je následující:
multiset mset;
Multiset celých prvků lze deklarovat jako:
multiset mset;
Různé operace podporované multisetem jsou podobné těm, které jsou podporovány sadou.
Nyní budeme přímo diskutovat o multisetovém příkladu, který demonstruje operaci, kterou používá.
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< Výstup:
Velikost myset: 4
Po vložení čtyř prvků je multiset myset: 10 11 13
13
Po vložení 15 je multiset myset: 10 11 13 13 15
Po odstranění prvků menších než 15, myset: 15
Screenshot výstupu je uveden níže:
Jak je znázorněno ve výše uvedeném výstupu, zpočátku zadáme čtyři prvky v multisetu, z nichž dva jsou stejné. Ale na rozdíl od sady jsou tyto prvky úspěšně vloženy do multisetu. Poté vložíme další prvek 15 poskytnutím polohy prostřednictvím iterátoru, který je úspěšně vložen.
Dále najdeme prvky menší než 15 v multiset a funkci mazání volání na těchto prvcích. Nakonec zobrazíme multiset.
Neuspořádaná sada
Dosud jsme v tomto kurzu diskutovali o sadě a multisetu.
Zatímco sada je uspořádanou posloupností jedinečných klíčů, máme další asociativní kontejner, který se nazývá „neuspořádaná sada“, což je sada klíčů nebo prvků, které jsou uloženy v libovolném pořadí. To znamená, že prvky v neuspořádané sadě jsou „neuspořádané“.
Podobně jako neuspořádaná mapa je neuspořádaná sada také implementována pomocí hash tabulky, kde jsou klíče hašovány do indexů hash tabulky. Z důvodu použití hash tabulky není možné udržovat pořadí prvků na rozdíl od sady, která používá vyváženou stromovou strukturu.
Záhlaví pro implementaci neuspořádané sady je.
#include
Deklarujeme neuspořádanou mapu typu integer takto:
Unordered_set uset;
Operace podporované unordered_set jsou podobné těm, které jsou podporovány unordered_map, o kterém pojednávají naše výukové programy na mapě.
Níže je uveden příklad, který ukazuje různé operace na unordered_set.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< Výstup:
Velikost uset: 5
Prvky v neuspořádané sadě jsou: 99 39 6 5 26 4 3 13 2
Nalezený klíč = 13
umap bucket_count: 11
bucket_size: 2
Screenshot výše uvedeného výstupu je uveden níže.
Jak je znázorněno ve výše uvedeném výstupu, nejprve vložíme 5 prvků do neuspořádané sady a poté vložíme další 4 prvky, které demonstrují použití variant funkce vložení. Poté zobrazíme obsah neuspořádané sady.
Dále použijeme funkci find, abychom zjistili, zda je klíč = 13 v neuspořádané sadě nebo ne.
Poté si ukážeme další dvě funkce „bucket_count“ a „bucket_size“. Tyto funkce souvisejí s interní implementací neuspořádané mapy.
Tento kontejner podporuje také další funkce iterátoru a funkce jako max_size, clear, erase, empty atd., Které jsou podobné ostatním kontejnerům STL.
Závěr
S tímto jsme se dostali na konec našeho tutoriálu o SET v STL.
Doufáme, že témata zahrnutá jako součást tohoto tutoriálu STL vám pomohou porozumět STL a jeho různým kontejnerům.
jaké je použití maven v selenu
=> Přečtěte si zde populární sérii školení C ++.
Doporučené čtení