set stl
Aflați rapid SET în STL cu exemple simple.
Vom analiza în detaliu containerul STL - Seturi, aici în acest tutorial. Seturile sunt containere asociative cu elemente unice într-o anumită ordine.
Valoarea unui element din set este, de asemenea, cheia care este utilizată pentru a-l accesa. Toate elementele din set trebuie să fie unice. Nu putem modifica elementele din set după ce sunt inserate. Cu toate acestea, putem insera sau șterge elementele.
=> Verificați aici pentru seria C ++ GRATUITĂ
Ce veți învăța:
SET IN STL
Pentru a implementa setul, trebuie să includem antetul în programul nostru.
cel mai bun instrument de gestionare a cazurilor de test pentru jira
#include
Putem declara un set după cum urmează:
set myset;
De exemplu,dacă dorim un set, setul meu al unui element cu tip întreg, atunci putem declara setul ca:
set myset;
Operații pe set
Containerul set acceptă, de asemenea, operațiuni similare, cum ar fi o hartă despre care am discutat deja. Următoarele sunt câteva dintre operațiunile de bază acceptate de set.
- începe : Returnează iteratorul la primul element al setului.
- Sfârșit : Returnează iteratorul la elementul care urmează ultimului element al setului.
- introduce : Introduce un element nou în set.
Operația de inserare pentru set are trei variante:
-
-
- inserare (element): Aceasta introduce direct elementul în set și reordonează setul.
- inserare (poziție, indiciu): Aici, specificăm poziția pentru a insera elementul.
- insert (iterator.begin (), iterator.end ()): În această variantă, putem insera direct gama în set ca o matrice sau un alt set.
-
- şterge : Elimină un element din set.
- mărimea : Returnează dimensiunea setului.
- max_size : Returnează dimensiunea maximă pe care setul o poate păstra.
- gol : Returnează dacă setul este gol.
- clar : Elimină toate elementele din set.
- găsi : Găsește un element din set. Dacă se găsește un element, acesta returnează iteratorul la acel element din set. Dacă nu este găsit, returnează un iterator la sfârșitul setului.
Mai jos este prezentat un program care demonstrează utilizarea unor funcții importante ale 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: '< Ieșire:
Dimensiunea greșelii: 4
Setul de setare este: 120 130 140 160
După introducerea a 100, setul de setare este: 100 120 130 140 160
După introducerea matricei arr, setul de setare este: 100 110 120 130 140 150 160
După îndepărtarea elementelor mai mici de 130, setarea greșită: 130 140 150 160

După cum se arată în rezultatul de mai sus, creăm un set folosind o funcție simplă de inserare.
Apoi, inserăm elementul 100 în set folosind o altă variantă a funcției insert prin trecerea referinței iteratorului și a valorii elementului 100. Vedem că, odată ce insertul este făcut, setul este reordonat și ordinea elementelor este menținută.
Apoi inserăm o matrice {110,150,150} utilizând funcția de inserare. Dacă vedeți ieșirea setată afișată după inserarea unei matrice, vedem că o singură valoare de 150 este introdusă în set. Acest lucru se datorează faptului că toate elementele din set sunt unice.
Afișăm și dimensiunea setului. Apoi, folosind funcția de găsire găsim elementele mai mici de 130 și apoi apelăm funcția de ștergere pentru a elimina aceste elemente. Apoi afișăm setul rezultat.
Aici este vorba despre containerul setat. În continuare, vom discuta multiset care este o extensie a containerului setat.
Multiset
Un multiset este un container asociativ asemănător setat în toate aspectele, cu excepția unei singure diferențe, adică mai multe elemente pot avea aceeași valoare.
Declarația pentru multiset este după cum urmează:
multiset mset;
Un multiset de elemente întregi poate fi declarat ca:
multiset mset;
Diverse operații acceptate de multiset sunt similare cu cele acceptate de set.
Acum vom discuta direct despre un exemplu multiset care demonstrează operațiunea pe care o folosește.
exemplu de cod java în arborele binar de căutare
#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: '< Ieșire:
Dimensiunea greșelii: 4
După introducerea a patru elemente, setul multiset este: 10 11 13
13
După introducerea 15, setul de misuri multiset este: 10 11 13 13 15
După îndepărtarea elementelor mai mici de 15, setarea greșită: 15
Captura de ecran a rezultatului este prezentată mai jos:

Așa cum se arată în rezultatul de mai sus, inițial introducem patru elemente în multiset din care două sunt aceleași. Dar, spre deosebire de un set, aceste elemente sunt inserate cu succes în multiset. Apoi introducem un alt element 15 oferind poziția printr-un iterator, care este inserat cu succes.
Apoi, găsim elemente mai mici de 15 în funcția multiset și ștergere apel pe aceste elemente. În cele din urmă, afișăm multiset-ul.
Set neordonat
Până acum am discutat despre set și multiset în acest tutorial.
În timp ce setul este o secvență ordonată de chei unice, avem un alt container asociativ care se numește „set neordonat”, care este un set de chei sau elemente care sunt stocate în orice ordine. Aceasta înseamnă că elementele din setul neordonat sunt „neordonate”.
Similar unei hărți neordonate, setul neordonat este de asemenea implementat folosind un tabel hash unde cheile sunt hash în indici ai tabelului hash. Datorită utilizării unui tabel hash, nu este posibil să se mențină ordinea elementelor în contrast cu setul care utilizează o structură arborescentă echilibrată.
Antetul pentru implementarea setului neordonat este.
#include
Declarăm o hartă neordonată de tip întreg, după cum urmează:
Unordered_set uset;
Operațiunile acceptate de unordered_set sunt similare cu cele acceptate de unordered_map, care este discutată în tutorialele noastre de pe hartă.
Dat mai jos este un exemplu care demonstrează diferitele operații pe 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: '< Ieșire:
Dimensiunea utilizării: 5
Elementele dintr-un set neordonat sunt: 99 39 6 5 26 4 3 13 2
Cheie găsită = 13
umap bucket_count: 11
bucket_size: 2
Captura de ecran a rezultatului de mai sus este prezentată mai jos.

După cum se arată în rezultatul de mai sus, mai întâi inserăm 5 elemente în setul neordonat și apoi inserăm alte 4 elemente care demonstrează utilizarea variațiilor funcției de inserare. Apoi afișăm conținutul setului neordonat.
Apoi, folosim funcția de găsire pentru a afla dacă tasta = 13 este prezentă sau nu în setul neordonat.
După aceasta, vom demonstra încă două funcții „bucket_count” și „bucket_size”. Aceste funcții sunt legate de implementarea internă a hărții neordonate.
Acest container acceptă și celelalte funcții iterator și funcții precum max_size, clear, șterge, gol, etc., care este similar cu alte containere STL.
Concluzie
Cu aceasta, am ajuns la sfârșitul tutorialului nostru despre SET în STL.
Sperăm că subiectele tratate ca parte a acestor tutoriale STL vă vor ajuta să înțelegeți STL și diversele sale containere.
care dintre următoarele este definiția testării cutiei albe?
=> Citiți aici seria populară de formare C ++.
Lectură recomandată
- Coadă prioritară în STL
- Liste în STL
- MAPS În STL
- Stive și cozi în STL
- Iteratori în STL
- Matrice în STL
- Corzi, perechi și tupluri în STL
- Algoritmi în STL