Inngangstegnene her er usortert. Dette settet kan opprettes med følgende uttalelse:
settDette er et sett med chars. Det er mulig å ha et sett av en annen type. Uansett hva som er tilfelle for å drive koding, må C ++ SET -biblioteket inkluderes i programmet. Tenk på følgende program:
#inkludereUtgangen er:
A, B, C, D, E,Utgangen sorteres opp stigende når inngangen ikke ble sortert. Etter at elementer er satt inn i et sett, blir de sortert. Med standardinnstilling, som i programmet ovenfor, er den typen stigende.
Ovennevnte program begynte med inkludering av iostream -biblioteket. Dette er nødvendig for bruk med terminalen (konsoll). Neste linje er et annet direktiv som inkluderer det faste biblioteket. Linjen etter er ikke et direktiv. Det er en uttalelse som slutter med at en semikolon insisterer på at ethvert navn som ikke er gitt av "STD ::" er fra standardnavnet.
Topplinjene blir fulgt av C ++ Main () -funksjonen. Den første uttalelsen i hovedfunksjonen erklærer settet. Det andre kodesegmentet viser verdiene til settet, som burde ha gjennomgått intern sortering, etter C++.
Etter å ha satt sortert stigende
I standard navneområde er syntaksen for å konstruere et sett faktisk:
malDet er tre malspesialiseringer her. Hvis den siste ikke er gitt av programmereren, velges standardverdien av C++. Hvis den siste og andre ikke er gitt av programmereren, blir standardverdiene valgt. Standardverdien for den andre spesialiseringen er "mindre", noe som betyr at du stiger opp stigende. Hvis utelatt, er settet fremdeles sortert stigende. Hvis det er til stede som "mindre", er settet sortert stigende, som følgende program viser:
#inkludereLegg merke til at "røye" er i stedet for "nøkkel" i "mindre". Utgangen er:
A, B, C, D, E,sortert stigende. Programmet begynner med inkludering av iostream -biblioteket. Dette er nødvendig for bruk med terminalen (konsoll). Neste linje er et annet direktiv som inkluderer det faste biblioteket. Linjen etter er ikke et direktiv. Det er en uttalelse som slutter med at en semikolon insisterer på at ethvert navn som ikke er gitt av "STD ::" er fra standardnavnet.
Topplinjene blir fulgt av C ++ Main () -funksjonen. Den første uttalelsen i hovedfunksjonen erklærer settet med "mindre" som den andre malspesialiseringen. Det andre kodesegmentet viser verdiene til settet, som burde ha gjennomgått intern sortering på riktig måte, med C++.
Etter å ha satt sortert nedstiger
For å ha et sett sortert synkende, må den andre spesialiseringen inkluderes. Det er "større", der "nøkkel" erstattes av datatypen. Mindre og større er forhåndsdefinerte funksjoner i det faste biblioteket. Følgende program resulterer i et sett som er sortert synkende:
#inkludereUtgangen er:
E, d, c, b, a,sortert nedstiger. Programmet begynner med inkludering av iostream -biblioteket. Dette er nødvendig for bruk med terminalen (konsoll). Neste linje er et annet direktiv som inkluderer det faste biblioteket. Linjen etter er ikke et direktiv. Det er en uttalelse som slutter med en semikolon, og insisterer på at ethvert navn som ikke er gitt av "STD ::" er av standardnavnet.
Topplinjene blir fulgt av C ++ Main () -funksjonen. Den første uttalelsen i hovedfunksjonen erklærer settet med "større" som den andre malspesialiseringen. Det andre kodesegmentet viser verdiene til settet, som burde ha gjennomgått intern sortering på riktig måte, med C++.
Observatører
Syntaksene for de faste observatørene er:
KEY_COMPARE KEY_COMP () const;og
verdi_compare value_comp () const;Utgangen er: 1, for sann.
KEY_COMP () er en medlemsfunksjon i SET -klassen. Det krever ikke noe argument. Den returnerer et funksjonsobjekt som er en funksjon som tar to argumenter. Funksjonsobjektet (samtale) er identifisert i den andre uttalelsen ovenfor som “ST.Key_comp () () ”. Argumentene forventes å være elementer i settet etter intern sortering basert på sammenligningsmalspesialiseringen.
Hvis det første argumentet kommer først i settet etter intern sortering, vil funksjonsobjektet returnere sant, ellers vil det returnere falskt. Alt som er kodet i den andre uttalelsen ovenfor.
Hvis sammenligningsmalspesialiseringen hadde vært "større", ville utdataene vært 0, for falsk.
verdi_compare value_comp () const;Dette angår verdiene til settet med nøkkel/verdipar - se senere.
Konklusjon
Etter at elementer er satt inn i et sett i C ++, blir de umiddelbart sortert internt. Hvis sammenligningsmalspesialiseringen er "mindre", som er standard, og kan utelates, vil sorteringen bli gjort opp stigende. Hvis den er "større", vil sortering bli gjort av synkende. “Nøkkel” i disse uttrykkene erstattes av typen verdier i settet. Verdiene er av en type.
Så et sett trenger ikke en sortert medlemsfunksjon fordi verdiene alltid er sortert. Når et sett opprettes med noen innledende elementer, blir disse elementene sortert. Ethvert innsats av ethvert element etter at det forårsaker re-sorting. Verdiene til et sett som det som er beskrevet ovenfor kalles nøkler. Noen sett kan imidlertid ha nøkkel/verdipar - se senere.