C ++ STLs strukturer for å holde gjenstander i en bestemt rekkefølge kalles sett. Et sett må ha unike komponenter. Hvert element i et sett kan identifiseres med verdien individuelt, slik at de fungerer som nøkler. I C ++ kan vi legge til og slette elementer fra et sett; Vi kan imidlertid ikke endre komponentenes verdier fordi de er statiske etter å ha blitt plassert i settet.”
Definisjon av sett i C++
Som det allerede er sagt, er sett bare den typen standardmalbibliotekbeholdere som brukes i C ++ for å lagre varer nøyaktig. Sett kan bare bli utsatt for metodene for innsetting og sletting. I et innstilt type objekt er elementene automatisk organisert i en spesifisert rekkefølge. Vi kan ikke endre eller oppdatere verdiene til de allerede eksisterende komponentene i et sett fordi gjenstandene i containerne er uforanderlige. Ved å definere det nøyaktig, fungerer et element i et sett som en nøkkel for seg selv. Sett er bare aktivert for å inneholde en spesifikk verdi.
Når skal du bruke sett?
I konkurrerende programmering er sett mye ansatt som containere. Når det er nødvendig å lagre gjenstander på en kategorisert måte, kan vi vurdere å bruke sett, men husk at sett ikke tillater lagring av gjentatte verdier. Når den er lagt inn, kan ikke verdien endres.
Implementering av settene
For å samhandle med sett, bør de to hovedoverskriftsfilene integreres. Sett får tilgang til ved å bruke iteratorer. Integrer #include og #include i koden din. Vi har valget mellom å bruke akkurat denne ene overskriftsfilen i stedet for disse to. Biblioteket fungerer som en erstatning for over-nevnte overskriftsfiler. Vi kan bare bruke denne ene overskriftsfilen fordi den inneholder alle overskriftsfilene. Binære søketrær brukes til å definere sett på internt nivå.
Angi egenskaper i C++
Følgende er noen av de vanlige settattributtene i C ++:
Syntaks av sett
Følgende er STD :: SET -erklæringen fra “Set” -biblioteket:
Parametere
En settbeholder kan inneholde unike komponenter. Dette kan være et funksjonsobjekt eller en funksjonspeker. Mindre er standardverdien, og den gir de samme resultatene som å bruke mindre enn uttrykket (x Funksjoner på sett I C ++ kan sett utsettes for et bredt utvalg av operasjoner. La oss evaluere noen av de viktigste settteknikkene. Eksempel nr. 1 I dette tilfellet vil et sett bli initialisert. I C ++ spesifiserer vi de forskjellige typer elementer som vil bli plassert i et sett når det opprettes. Datapunktene til et sett lagres vanligvis i stigende rekkefølge. Den større funksjonen kan brukes til å holde data i synkende rekkefølge. Blank sett Dette er mange teknikker for å erklære et sett. Overskriftsfilene og vil bli integrert først. Etter dette vil det standardnavnet bli brukt. Hovedfunksjonen () vil bli kalt. Det første settet vil bli initialisert, og det vil være et tomt sett, da det ikke inneholder noe element. Det andre settet vil bli erklært som et tomt sett i synkende rekkefølge. Det nye settet vil bli initialisert ved å legge til forskjellige heltall til det. Dette settet inneholder fire elementer. Videre vil vi initialisere et nytt sett som heter “S4” ved bruk av et annet sett, “S3”. Vi ga verdiene til S3 som parametrene til S4. Nå vil settet bli erklært fra en matrise. Vi spesifiserer verdiene i matrisen og lagrer deretter disse verdiene i en variabel "a". Det femte settet inneholder de 4 verdiene til matrisen. Deretter vil vi definere iteratoren for disse nødvendige settene. Vi vil skaffe verdiene til alle settene ved bruk av "for" -sløyfen. Eksempel nr. 2 Denne illustrasjonen demonstrerer hvordan settets innsetting og slettingsmetoder fungerer. De nødvendige bibliotekene vil bli inkludert i begynnelsen av programmet. Standard navneområdet vil bli lagt til som "STD". Nå vil hovedmetoden () bli påkalt. La oss erklære forskjellige sett. Vi vil kalle Sett inn () -metoden for å legge til verdiene i settet. Ulike pekere vil bli opprettet og kalt “P_1”, “P_2” og “P_3”. Iteratoren vil bli erklært som disse pekerne. "Cout" -uttalelsen vil bli brukt til å skildre linjen "setets verdier er". Nå vil "for" -sløyfen bli brukt til å vise alle de innsatte verdiene til settet. Begynnelsen () vil bli kalt for å starte verdiene til settet som skal skrives ut, og slutt () metoder vil bli brukt for å avslutte verdiene til settet. Disse metodene vil bli påkalt inne i "for" -sløyfen. Konstruktøren av den første pekeren vil bli definert i "cout" -uttalelsen. Nå vil vi lage et annet sett ved å organisere verdiene i synkende rekkefølge. Elementene i den første og andre nødvendige sett er de samme. Finn () -funksjonen vil bli kalt på elementene i det første definerte settet. Denne funksjonen får de definerte verdiene fra settet. Nå vil vi bruke Erase () -metoden for å slette verdiene fra det første settet. Verdiene som vil bli slettet er fra 22 til 88. "COUT" -uttalelsen vil bli brukt til å vise teksten "Verdiene til settet etter bruk av erase () -funksjon". For å vise verdiene, vil "for" -løkken bli brukt. Da blir konstruktøren av den første pekeren erklært. Nå bruker vi “For” -løkken for å skrive ut varene til det andre nødvendige settet. Uttalelsen “cout” skriver ut linjen “verdiene til det andre settet er”. Før du legger til “Return 0” -kommandoen, vil konstruktøren av iteratorvariabelen opprettes. Eksempel nr. 3 I dette eksemplet vil to funksjoner, finne () og slette, bli brukt. Hvis elementet er identifisert, produserer Find () -metoden en iterator som refererer til den; Ellers gir den en iterator som refererer til settets slutt. Elementene i settet vil fjerne ved hjelp av slettingsfunksjonen (). Programmet vil omfatte relevante biblioteker i begynnelsen som heter . Standard navneområdet som "STD" vil bli introdusert. En referanse til hovedfunksjonen () vil nå bli gjort. Spesifiser settet først. For å inkludere verdiene i settet, vil vi bruke Insert () -funksjonen. Iteratoren vil bli identifisert som "jeg"; Verdiene til det aktuelle settet vises ved hjelp av “cout” -kommandoen. "For" -sløyfen vil nå bli brukt til å vise alle settets innsatte verdier. BEGIN () -funksjonen vil bli brukt til å begynne å skrive ut settets verdier, og END () -metoden vil bli brukt til å fullføre å skrive ut settets verdier. Disse definerte metodene vil bli brukt inne i "for" -sløyfen. "Cout" -uttalelsen vil erklære konstruktøren til iteratoren. Teksten “Oppdatert sett” vises ved hjelp av COUT -setningen. Det første settets komponenter vil bli bestemt ved å bruke Find () -funksjonen. De definerte verdiene oppnås ved denne funksjonen fra settet. For å fjerne verdiene fra det første settet, vil vi nå bruke slettemetoden (). Opptil 25 verdier vil bli eliminert. Ved hjelp av en "for" -sløyfe vil de gjenværende heltallene bli presentert. "Cout" -uttalelsen vil gi en erklæring om iteratorens konstruktør. Nedre grense- og øvre grenseoperasjoner på settets verdier vil bli utført. Settets 45 og 17 verdier vil bli gitt til den nedre grensen () -funksjonen, som deretter vil bruke “cout” -kommandoen til å skrive ut resultatet. Disse lignende verdiene i settet vil bli behandlet på en øvre grense () -metode. Utfallsverdien vil bli skrevet ut av “cout” -kommandoen. Kommandoen “retur 0” vil bli lagt til på slutten. Konklusjon Vi har diskutert C ++ SET -funksjoner i denne guiden. I likhet med andre standardbibliotekpakker er C ++ -settet avgjørende. Det gjør det lettere for utviklere å trekke ut og manipulere verdier. Vi har implementert tre programmer. Initialisering av settene håndteres i det første eksemplet. Den andre viser tillegg og fjerning av verdier fra settet. I siste tilfelle velger vi noen få verdier fra settet og fjerner dem deretter.
#inkludere
ved hjelp av navneområdet STD;
int main ()
sett1;
sett
sett
sett
int ar [] = 15, 24, 75, 51;
sett S5 (AR, AR+4);
Sett :: Iterator I;
for (auto i = s5.begynne(); Jeg!= S5.end (); i ++)
cout<
retur 1;
ved hjelp av navneområdet STD;
int main ()
sett S1;
S1.sett inn (22);
S1.sett inn (33);
S1.sett inn (56);
S1.sett inn (9);
S1.sett inn (67);
S1.sett inn (47);
S1.sett inn (88);
Sett :: Iterator P_1, P_2, P_3;
cout<< " The values of the set are: \n" ;
for (p_1 = s1.begynne() ; P_1 != S1.slutt() ; P_1 ++)
cout<< *p_1 << " " ;
cout<
sett
P_2 = S1.finn (22);
P_3 = S1.finn (88);
S1.Sletting (P_2, P_3);
cout<< " The values of the set after using erase() function: \n " ;
for (p_1 = s1.begynne() ; P_1 != S1.slutt() ; P_1 ++)
cout<< *p_1 << " ";
cout<
for (i = s2.begynne() ; Jeg != S2.slutt() ; i ++)
cout<< *i<< " ";
retur 0;
ved hjelp av navneområdet STD;
int main ()
SETS_1;
S_1.sett inn (45);
S_1.sett inn (12);
S_1.sett inn (17);
S_1.sett inn (89);
S_1.sett inn (25);
S_1.sett inn (14);
S_1.Sett inn (78);
S_1.sett inn (34);
Sett :: Iterator I;
cout<<"Values of required set: \n";
for (i = s_1.begynne() ; Jeg != S_1.slutt() ; i ++)
cout<<*i<< " ";
cout<
S_1.Sletting (S_1.Begynn (), S_1.finn (25));
for (i = s_1.begynne() ; Jeg!= S_1.slutt() ; i ++)
cout<< *i<< " " ;
cout<
cout<< *s_1.lower_bound( 45 )<
cout<< *s_1.lower_bound( 17 ) <
cout<< *s_1.upper_bound( 45 ) <
cout<< *s_1.upper_bound( 17 ) <