set stl
Brzo naučite SET u STL-u s jednostavnim primjerima.
Detaljno ćemo pogledati STL spremnik - Setovi, ovdje u ovom vodiču. Kompleti su asocijativni spremnici s jedinstvenim elementima u određenom redoslijedu.
Vrijednost elementa u skupu ujedno je i ključ koji mu se koristi za pristup. Svi elementi u skupu moraju biti jedinstveni. Elemente u skupu ne možemo mijenjati nakon što su umetnuti. Međutim, možemo umetnuti ili izbrisati elemente.
=> Ovdje pogledajte cjelovitu C ++ BESPLATNU seriju treninga.
Što ćete naučiti:
POSTAVLJANJE U STL
Da bismo implementirali set, moramo uključiti zaglavlje u naš program.
što je stablo odluke u rudarstvu podataka
#include
Skup možemo proglasiti na sljedeći način:
set myset;
Na primjer,ako želimo set, myset elementa s cjelobrojnim tipom, tada možemo skup deklarirati kao:
set myset;
Operacije na setu
Postavljeni spremnik također podržava slične operacije poput karte o kojoj smo već razgovarali. Slijede neke od osnovnih operacija koje podržava skup.
- početi : Vraća iterator na prvi element skupa.
- kraj : Vraća iterator na element koji slijedi posljednji element skupa.
- umetnuti : Umeće novi element u skup.
Operacija umetanja za set ima tri varijante:
-
-
- umetak (element): Ovo izravno ubacuje element u skup i preuređuje skup.
- umetak (položaj, savjet): Ovdje određujemo položaj za umetanje elementa.
- umetak (iterator.begin (), iterator.end ()): U ovoj varijaciji možemo izravno umetnuti raspon u skup poput niza ili drugog skupa.
-
- izbrisati : Uklanja element iz skupa.
- veličina : Vraća veličinu skupa.
- max_size : Vraća maksimalnu veličinu koju skup može sadržavati.
- prazan : Vraća je li skup prazan.
- čisto : Uklanja sve elemente iz skupa.
- pronaći : Pronalazi element u skupu. Ako je element pronađen, vraća iterator tom elementu u skupu. Ako nije pronađen, vraća iterator na kraj skupa.
Dolje je dan program koji prikazuje upotrebu nekih važnih funkcija SET-a.
#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: '< Izlaz:
Veličina skupa: 4
Skup skupova je: 120 130 140 160
Nakon umetanja 100, postavljeni skup je: 100 120 130 140 160
Nakon umetanja niza arr, skup myset je: 100 110 120 130 140 150 160
Nakon uklanjanja elemenata manjih od 130, myset: 130 140 150 160

Kao što je prikazano u gornjem izlazu, kreiramo skup pomoću jednostavne funkcije umetanja.
besplatna aplikacija za preuzimanje youtube videozapisa
Dalje, umetnemo element 100 u skup pomoću druge varijante funkcije umetanja prosljeđujući referencu iteratora i vrijednost elementa 100. Vidimo da se nakon umetanja skup preuređuje i redoslijed elemenata održava.
Zatim umetnemo niz {110,150,150} pomoću funkcije umetanja. Ako vidite da je izlaz seta prikazan nakon umetanja niza, vidimo da se u skup unosi samo jedna vrijednost 150. To je zato što su svi elementi u skupu jedinstveni.
Također prikazujemo veličinu seta. Dalje, pomoću funkcije pronalaženja pronalazimo elemente manje od 130, a zatim pozivamo funkciju brisanja da bismo uklonili te elemente. Zatim prikazujemo rezultantni skup.
Ovdje se radi o postavljenom spremniku. Dalje ćemo razgovarati o multisetu koji je produžetak postavljenog spremnika.
Multiset
Multiset je asocijativni spremnik sličan postavljenom u svim aspektima, osim jedne razlike, tj. Više elemenata može imati istu vrijednost.
Izjava za multiset je sljedeća:
multiset mset;
Multiskup cjelobrojnih elemenata može se deklarirati kao:
multiset mset;
Razne operacije podržane multisetom slične su onima koje podržava skup.
Sada ćemo izravno razgovarati o primjeru s više skupova koji pokazuje operaciju koju koristi.
#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: '< Izlaz:
Veličina skupa: 4
Nakon umetanja četiri elementa, skup skupova s više skupova je: 10 11 13
13
Nakon umetanja 15, skup skupova s više skupova je: 10 11 13 13 15
Nakon uklanjanja elemenata manjih od 15, myset: 15
Snimka zaslona rezultata data je u nastavku:

Kao što je prikazano u gornjem izlazu, u početku u multiset unosimo četiri elementa od kojih su dva ista. No, za razliku od skupa, ti su elementi uspješno umetnuti u multiset. Zatim umetnemo još jedan element 15 davanjem položaja kroz iterator, koji je uspješno umetnut.
Dalje, u multisetu nalazimo elemente manje od 15 i pozivamo brisanje funkcije na tim elementima. Na kraju prikazujemo multiset.
Neuređeni set
Do sada smo u ovom vodiču raspravljali o setu i multisetu.
Iako je skup uređeni slijed jedinstvenih ključeva, imamo još jedan asocijativni spremnik koji se naziva „neuređeni skup”, a to je skup ključeva ili elemenata koji su pohranjeni u bilo kojem redoslijedu. To znači da su elementi u neuređenom skupu ‘neuređeni’.
Slično neuređenoj karti, neuređeni skup se također implementira pomoću hash tablice gdje se ključevi raspršuju u indekse hash tablice. Zbog upotrebe hash tablice nije moguće održavati redoslijed elemenata za razliku od skupa koji koristi uravnoteženu strukturu stabla.
Zaglavlje za implementaciju neuređenog skupa je.
#include
Neuređenu mapu cijelog broja proglašavamo kako slijedi:
Unordered_set uset;
Operacije podržane unordered_set slične su onima koje podržava unordered_map o čemu se govori u našim vodičima na karti.
Dolje je dat primjer koji prikazuje razne operacije 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: '< Izlaz:
Veličina upotrebe: 5
Elementi u neuređenom skupu su: 99 39 6 5 26 4 3 13 2
Pronađeni ključ = 13
umap bucket_count: 11
veličina kante: 2
Snimka zaslona gornjeg izlaza data je u nastavku.

Kao što je prikazano u gornjem izlazu, prvo umetnemo 5 elemenata u neuređeni skup, a zatim umetnemo još 4 elementa koji demonstriraju upotrebu varijacija funkcije umetanja. Zatim prikazujemo sadržaj neuređenog skupa.
Dalje, koristimo funkciju pronalaženja kako bismo pronašli je li ključ = 13 prisutan u neuređenom skupu ili ne.
Nakon toga, demonstriramo još dvije funkcije 'bucket_count' i 'bucket_size'. Te su funkcije povezane s unutarnjom provedbom neuređene karte.
Ovaj spremnik također podržava ostale funkcije i funkcije iteratora kao što su max_size, clear, brisanje, prazno itd. Koje su slične ostalim STL spremnicima.
Zaključak
Ovim smo došli do kraja našeg vodiča o SET-u u STL-u.
Nadamo se da će vam teme obrađene u sklopu ovih tutorijala za STL pomoći da steknete razumijevanje STL-a i njegovih različitih spremnika.
kako pokrenuti java jar datoteku -
=> Ovdje pročitajte popularne serije obuke za C ++.
Preporučena literatura
- Redoslijed prioriteta u STL-u
- Popisi u STL-u
- KARTE U STL-u
- Nizovi i redovi u STL-u
- Iteratori u STL-u
- Nizovi u STL-u
- Žice, parovi i torte u STL-u
- Algoritmi u STL-u