set stl
Lær raskt SET IN STL med enkle eksempler.
Vi tar en grundig titt på STL-containeren - sett, her i denne opplæringen. Sett er assosierende beholdere med unike elementer i en bestemt rekkefølge.
Verdien til et element i settet er også nøkkelen som brukes for å få tilgang til det. Alle elementene i settet må være unike. Vi kan ikke endre elementene i settet når de er satt inn. Imidlertid kan vi sette inn eller slette elementene.
=> Sjekk her for komplett C ++ GRATIS treningsserie.
Hva du vil lære:
SETT I STL
For å implementere sett, må vi ta med overskriften i programmet vårt.
oracle 11g ytelsestuning intervju spørsmål
#include
Vi kan erklære et sett som følger:
set myset;
For eksempel,hvis vi vil ha et sett, myset av et element med heltallstype, så kan vi erklære settet som:
set myset;
Operasjoner på sett
Settbeholderen støtter også lignende operasjoner som et kart som vi allerede har diskutert. Følgende er noen av de grunnleggende operasjonene som støttes av settet.
- begynne : Returnerer iteratoren til det første elementet i settet.
- slutt : Returnerer iteratoren til elementet som følger det siste elementet i settet.
- sett inn : Setter inn et nytt element i settet.
Innsatsoperasjonen for settet har tre varianter:
-
-
- sett inn (element): Dette setter elementet direkte inn i settet og omorganiserer settet.
- sett inn (posisjon, hint): Her spesifiserer vi posisjonen for å sette inn elementet.
- sett inn (iterator.begin (), iterator.end ()): I denne variasjonen kan vi sette inn området direkte i settet som en matrise eller et annet sett.
-
- viske ut : Fjerner et element fra settet.
- størrelse : Returnerer størrelsen på settet.
- maks. størrelse : Returnerer den maksimale størrelsen som settet kan holde.
- tømme : Returnerer om settet er tomt.
- klar : Fjerner alle elementene fra settet.
- finne : Finner et element i settet. Hvis et element blir funnet, returnerer det iteratoren til det elementet i settet. Hvis den ikke blir funnet, returnerer den en iterator til slutten av settet.
Nedenfor er et program som demonstrerer bruken av noen viktige funksjoner i 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: '< Produksjon:
Størrelse på myset: 4
Settet myset er: 120 130 140 160
Etter å ha satt inn 100 er settet myset: 100 120 130 140 160
Etter å ha satt inn array arr er settet myset: 100110120130140150160
Etter fjerning av elementer under 130, myset: 130 140 150 160

Som vist i utgangen ovenfor, lager vi et sett ved hjelp av en enkel innsettingsfunksjon.
hvordan du åpner .xml filer
Deretter setter vi inn element 100 i settet ved hjelp av en annen variant av innsettingsfunksjonen ved å sende iteratorreferanse og elementverdi 100. Vi ser at når innsatsen er ferdig, blir settet omorganisert og rekkefølgen av elementene opprettholdes.
Deretter setter vi inn en matrise {110,150,150} ved hjelp av innsettingsfunksjonen. Hvis du ser den angitte utgangen vises etter å ha satt inn en matrise, ser vi at bare en verdi på 150 er angitt i settet. Dette er fordi alle elementene i settet er unike.
Vi viser også størrelsen på settet. Deretter finner vi elementene som er mindre enn 130 ved hjelp av søkefunksjonen, og deretter kaller vi slettingsfunksjonen for å fjerne disse elementene. Deretter viser vi det resulterende settet.
Dette handler om den angitte beholderen. Deretter vil vi diskutere multisett som en utvidelse av settbeholderen.
Multisett
Et multisett er en assosiativ beholder som ligner sett i alle aspekter, bortsett fra en forskjell, dvs. flere elementer kan ha samme verdi.
Erklæringen for flersett er som følger:
multiset mset;
Et flersett av heltallelementer kan erklæres som:
multisett mset;
Ulike operasjoner som støttes av multisett, ligner de som støttes av sett.
Nå vil vi direkte diskutere et flersetteksempel som demonstrerer operasjonen den bruker.
#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: '< Produksjon:
Størrelse på myset: 4
Etter å ha satt inn fire elementer er multisett myset: 10 11 13
1. 3
Etter å ha satt inn 15 er multisett myset: 10 11 13 13 15
Etter fjerning av elementer under 15, myset: 15
Skjermbilde av utgangen er gitt nedenfor:

Som vist i ovennevnte utgang, legger vi inn fire elementer i multisettet, hvorav to er like. Men i motsetning til et sett, er disse elementene vellykket satt inn i multisettet. Deretter setter vi inn et annet element 15 ved å gi posisjon gjennom en iterator, som vellykket er satt inn.
Deretter finner vi elementer mindre enn 15 i multisett og samtale slettefunksjon på disse elementene. Til slutt viser vi multisett.
Ubestilt sett
Så langt har vi diskutert sett og multisett i denne opplæringen.
Mens settet er en ordnet rekkefølge med unike nøkler, har vi en annen assosiativ beholder som kalles 'uordnet sett' som er et sett med nøkler eller elementer som er lagret i hvilken som helst rekkefølge. Dette betyr at elementene i det uordnede settet er 'ikke ordnet'.
I likhet med et uordnet kart, implementeres det uordnede settet også ved hjelp av en hash-tabell der tastene er hasjert til indekser av hash-tabellen. På grunn av bruken av et hashbord er det ikke mulig å opprettholde rekkefølgen av elementene i motsetning til settet som bruker en balansert trestruktur.
Overskriften for implementering av uordnet sett er.
#include
Vi erklærer et uordnet kart av typen heltall som følger:
Unordered_set uset;
Operasjoner som støttes av unordered_set er lik de som støttes av unordered_map, som er diskutert i våre veiledninger på kartet.
Nedenfor er et eksempel som viser de forskjellige operasjonene på 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: '< Produksjon:
Størrelse på bruk: 5
Element i ubestilt sett er: 99 39 6 5 26 4 3 13 2
Fant nøkkel = 13
umap bucket_count: 11
bucket_size: 2
Skjermbilde av ovennevnte utdata er gitt nedenfor.

Som vist i ovennevnte utgang, setter vi først inn 5 elementer i det uordnede settet, og setter inn ytterligere 4 elementer som viser bruken av variasjoner i innsatsfunksjonen. Deretter viser vi innholdet i det uordnede settet.
Deretter bruker vi søkefunksjonen for å finne ut om nøkkelen = 13 er tilstede i det uordnede settet eller ikke.
Etter dette demonstrerer vi to funksjoner til 'bucket_count' og 'bucket_size'. Disse funksjonene er knyttet til den interne implementeringen av det uordnede kartet.
Denne beholderen støtter også de andre iteratorfunksjonene og fungerer som max_size, clear, slette, tømme osv. Som ligner på andre STL-containere.
Konklusjon
Med dette har vi kommet til slutten av opplæringen vår om SET i STL.
Vi håper at emnene som dekkes som en del av denne STL-opplæringen, vil hjelpe deg med å få en forståelse av STL og dens forskjellige containere.
hva er kvalitetskontroll og kvalitetssikring
=> Les gjennom den populære C ++ treningsserien her.
Anbefalt lesing
- Prioritetskø I STL
- Lister i STL
- KARTER I STL
- Stabler og køer i STL
- Iteratorer i STL
- Arrays I STL
- Strenger, Pair & Tuples In STL
- Algoritmer i STL