set stl
Rýchlo sa naučte SADU v STL s jednoduchými príkladmi.
Pozrime sa podrobne na kontajner STL - súpravy, tu v tomto výučbe. Sady sú asociatívne kontajnery s jedinečnými prvkami v konkrétnom poradí.
Hodnota prvku v množine je tiež kľúčom, ktorý sa používa na prístup k nej. Všetky prvky v súprave musia byť jedinečné. Po vložení nemôžeme prvky v množine upraviť. Môžeme však vložiť alebo vymazať prvky.
=> Skontrolujte tu kompletné školiace série ZDARMA C ++.
Čo sa dozviete:
SADA V STL
Ak chcete implementovať množinu, musíme do nášho programu zahrnúť hlavičku.
ako spustiť súbor SWF v Chrome
#include
Sadu môžeme deklarovať takto:
set myset;
Napríklad,ak chceme množinu, myset prvku s celočíselným typom, môžeme množinu vyhlásiť ako:
set myset;
Operácie sú nastavené
Sada kontajnerov podporuje aj podobné operácie, napríklad mapu, o ktorej sme už hovorili. Nasleduje niekoľko základných operácií podporovaných sadou.
- začať : Vráti iterátor na prvý prvok množiny.
- koniec : Vráti iterátor na prvok, ktorý nasleduje za posledným prvkom množiny.
- vložiť : Vloží nový prvok do súpravy.
Operácia vloženia pre súpravu má tri varianty:
-
-
- vložka (prvok): Toto priamo vloží prvok do súpravy a zmení jej poradie.
- vložka (poloha, nápověda): Tu určíme pozíciu na vloženie prvku.
- vložte (iterator.begin (), iterator.end ()): V tejto variácii môžeme priamo vložiť rozsah do množiny ako pole alebo inú množinu.
-
- vymazať : Odstráni prvok zo súpravy.
- veľkosť : Vráti veľkosť súpravy.
- max_size : Vráti maximálnu veľkosť, ktorú môže súprava pojať.
- prázdny : Vráti, či je množina prázdna.
- jasný : Odstráni všetky prvky zo súpravy.
- Nájsť : Nájde prvok v množine. Ak sa nájde prvok, vráti iterátor tomuto prvku v množine. Ak sa nenájde, vráti iterátor na koniec množiny.
Ďalej je uvedený program, ktorý demonštruje použitie niektorých dôležitých funkcií 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ýkon:
Veľkosť myset: 4
Sada MySet je: 120 130 140 160
Po vložení 100 je nastavená myset: 100 120 130 140 160
Po vložení poľa arr je nastavená myset: 100 110 120 130 140 150 160
Po odstránení prvkov menej ako 130, sada: 130 140 150 160

Ako je znázornené na výstupe vyššie, množinu vytvoríme pomocou funkcie jednoduchého vloženia.
Ďalej vložíme prvok 100 do množiny pomocou iného variantu funkcie vloženia odovzdaním referencie iterátora a hodnoty prvku 100. Vidíme, že akonáhle je vloženie hotové, zostava sa zmení v poradí a zachová sa poradie prvkov.
Ďalej vložíme pole {110,150,150} pomocou funkcie vloženia. Ak uvidíte výstup sady po vložení poľa, zistíme, že do sady je zadaná iba jedna hodnota 150. Je to tak preto, lebo všetky prvky v množine sú jedinečné.
Taktiež zobrazujeme veľkosť súpravy. Ďalej pomocou funkcie find nájdeme prvky, ktoré sú menšie ako 130, a potom zavoláme funkciu mazania, aby sme tieto prvky odstránili. Potom zobrazíme výslednú množinu.
Toto je všetko o nastavenom kontajneri. Ďalej si povieme multiset, ktoré rozšírenie nastaveného kontajnera.
Multiset
Multiset je asociatívny kontajner podobný množine nastavenej vo všetkých aspektoch okrem jedného rozdielu, t. J. Viac prvkov môže mať rovnakú hodnotu.
Deklarácia pre multiset je nasledovná:
multiset mset;
Multiset celočíselných prvkov možno deklarovať ako:
multiset mset;
Rôzne operácie podporované multisetom sú podobné tým, ktoré podporuje množina.
Teraz budeme priamo diskutovať o multisetovom príklade, ktorý demonštruje operáciu, ktorú používa.
vr headset pre pc a ps4
#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ýkon:
Veľkosť myset: 4
Po vložení štyroch prvkov je multisetová myset: 10 11 13
13
Po vložení 15 je multisetová myset: 10 11 13 13 15
Po odstránení prvkov menších ako 15, myset: 15
Screenshot obrazovky výstupu je uvedený nižšie:

Ako je znázornené na výstupe vyššie, spočiatku zadáme do multisetu štyri prvky, z ktorých dva sú rovnaké. Ale na rozdiel od množiny sú tieto prvky úspešne vložené do multisetu. Potom vložíme ďalší prvok 15 poskytnutím polohy prostredníctvom iterátora, ktorý je úspešne vložený.
Ďalej nájdeme v multisete prvky menej ako 15 a na týchto prvkoch zavoláme funkciu mazania. Nakoniec zobrazíme multiset.
Neusporiadaná sada
Zatiaľ sme v tomto výučbe diskutovali o množinách a množinách.
Aj keď je sada usporiadanou sekvenciou jedinečných kľúčov, máme ďalší asociatívny kontajner, ktorý sa nazýva „neusporiadaná sada“, čo je sada kľúčov alebo prvkov, ktoré sú uložené v ľubovoľnom poradí. To znamená, že prvky v neusporiadanej množine sú „neusporiadané“.
Podobne ako neusporiadaná mapa je aj neusporiadaná množina implementovaná pomocou hašovacej tabuľky, kde sú kľúče hašované do indexov hašovacej tabuľky. Z dôvodu použitia hašovacej tabuľky nie je možné zachovať poradie prvkov na rozdiel od množiny používajúcej vyváženú stromovú štruktúru.
Hlavička pre implementáciu neusporiadanej množiny je.
#include
Neusporiadanú mapu typu celé číslo deklarujeme takto:
Unordered_set uset;
Operácie podporované unordered_set sú podobné operáciám podporovaným unordered_map, o ktorých pojednáva náš tutoriál na mape.
Nižšie je uvedený príklad, ktorý demonštruje rôzne operácie 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ýkon:
Veľkosť uset: 5
Prvky v neusporiadanej množine sú: 99 39 6 5 26 4 3 13 2
Nájdený kľúč = 13
umap bucket_count: 11
bucket_size: 2
Screenshot vyššie uvedeného výstupu je uvedený nižšie.

Ako je uvedené vo vyššie uvedenom výstupe, najskôr vložíme 5 prvkov do neusporiadanej množiny a potom vložíme ďalšie 4 prvky, ktoré demonštrujú použitie variácií funkcie vloženia. Potom zobrazíme obsah neusporiadanej množiny.
Ďalej pomocou funkcie find nájdeme, či je kľúč = 13 v neusporiadanej množine alebo nie.
Potom ukážeme ďalšie dve funkcie ‘bucket_count’ a ‘bucket_size’. Tieto funkcie súvisia s internou implementáciou neusporiadanej mapy.
Tento kontajner podporuje aj ďalšie funkcie iterátora a funkcie ako max_size, clear, erase, empty atď., Ktoré sú podobné ako v iných kontajneroch STL.
Záver
Týmto sme sa dostali na koniec nášho tutoriálu o SET v STL.
Dúfame, že témy, ktoré sú súčasťou týchto tutoriálov STL, vám pomôžu porozumieť STL a jej rôznym kontajnerom.
implementácia grafu v c ++
=> Prečítajte si populárnu sériu školení C ++ tu.
Odporúčané čítanie
- Prioritný front v STK
- Zoznamy v STL
- MAPY V STK
- Stohy a fronty v STK
- Iterátory v STL
- Polia v STL
- Struny, páry a n-tice v STL
- Algoritmy v STL