Et eksempel på et sett er:
"Plum", "Blackberry", "Apricot", "Strawberry", "Peach", "Papaya", "Guava"Det er et sett med navn på frukt. Hver verdi her kalles en nøkkel. Dette er også settet bokstavelig i C++. Det er også bokstavelig bokstavelig. Og det er også initializer_list.
Et C ++ -program som lager sett og strenger bør starte som følger:
#inkludereInkluderingen av iostream -biblioteket er for output (og input) til terminalen (konsoll). Inkluderingen av settbiblioteket er for sett. Inkluderingen av strengbiblioteket er for strenger. Hvis pekere til char* brukes i stedet for strengklassen, er det pekerne til Char Literals som vil bli sortert og ikke streng alfabetiske litteraler selv. Dette er alle under-libraries fra hovedstandardbiblioteket i C++. STD i tittelen på denne artikkelen betyr standard. Den fjerde linjen er ikke et direktiv. Det er en uttalelse som ender i en semikolon. Dette insisterer på at ethvert navn som ikke er gitt av standardnavnets navn, er fra standard navneområdet.
Merk: Når verdier er satt inn i det angitte objektet, er de sortert stigende, internt, for standardinnstillingene.
størrelse_type erase (const key_type & x)Dette sletter nøkkelen, hvis navn er argumentet for slettingens () medlemsfunksjon til settet. Programmereren må på forhånd vite at denne nøkkelen eksisterer i settet. Funksjonen returnerer antall elementer som er slettet fra settet. Følgende program viser hvordan du bruker denne medlemsfunksjonen:
#inkludereUtgangen er:
1Iterator Erase (iteratorposisjon)
Denne medlemsfunksjonen sletter nøkkelen iteratoren peker på. Følgende kode illustrerer dette:
setst ("plomme", "bjørnebær", "aprikos", "jordbær", "fersken", "papaya", "guava");"Papaya" ble slettet. Da det ble slettet, tok Guava sin plass ved den interne sortering. Det er grunnen til at Guava har dukket opp to ganger i den første utgangslinjen.
iterator erase (const_iterator posisjon)
Denne overbelastede medlemsfunksjonen er den samme som den ovenfor, bortsett fra at argumentet er en konstant iterator. Det returnerer fortsatt den normale iteratoren. Den returnerte iteratoren peker på neste element etter at den slettet ut basert på den interne sortering. Følgende program illustrerer alt det:
setst ("plomme", "bjørnebær", "aprikos", "jordbær", "fersken", "papaya", "guava");iterator erase (const_iterator først, const_iterator sist)
“First” er en iterator som peker på et element i det sorterte settet. “Last” er en iterator som peker på et element i det sorterte settet etter først. Argumentasjonen er konstante iteratorer. Denne medlemsfunksjonen sletter et område som inkluderer elementet for "først", og som utelukker elementet til sist. Følgende kode illustrerer dette:
setst ("plomme", "bjørnebær", "aprikos", "jordbær", "fersken", "papaya", "guava");Utvalget av “Guava, Papaya, Peach”, unntatt “Peach”, er fjernet.
Erstatte en verdi
Settet i C ++ har ingen medlemsfunksjon for å erstatte en verdi; Og det skal ikke ha. Dette er fordi hver gang en verdi settes inn, er det fullstendig sorting av settet (listen). Så det er ikke fornuftig å erstatte en verdi hvis posisjon vil endre seg etter å ha sortet. Likevel, hvis en verdi blir slettet, kan det settes inn en ny verdi som vil gjennomgå posisjonsjustering. I det følgende programmet blir "BlackBerry" slettet, og "Watermelon" settes inn. Den totale størrelsen forblir den samme ved 7.
#inkludereUtgangen er:
aprikos, guava, papaya, fersken, plomme, jordbær, vannmelon,Konklusjon
I C ++ er SET -klassen i Set Library of the Main C ++ Standard Library. Set -klassen har fire overbelastede sletter () medlemsfunksjoner. Et enkelt element kan slettes. En rekke elementer unntatt det siste elementet kan også slettes. Etter hver slettingshandling blir settet sortert internt.
Settet i C ++ har ingen medlemsfunksjon for å erstatte en verdi; Og det skal ikke ha. Dette er fordi hver gang en verdi settes inn, er det fullstendig sorting av settet (listen). Så det er ikke fornuftig å erstatte en verdi hvis posisjon vil endre seg etter å ha sortet.