The C + + Standard Template Library er fuld af nyttige funktioner til håndtering data, herunder den slags algoritme. Desværre, hvis du bruger den slags algoritme på en vifte af strenge , vil de ikke komme ud i alfabetisk rækkefølge. I stedet er det som standard til sortere dem i noget kendt som ASCIIbetical orden - en sortering baseret på den interne kodning af de enkelte bogstaver. For at sortere alfabetisk, skal du angive en funktion, der fortæller den slags algoritme , præcis hvordan man kan sammenligne to strenge på den måde du ønsker. Instruktioner
1
Medtag alle de nødvendige overskrifter ved at tilføje følgende linier til starten af dit program : # include # include
2 < p > Skriv en wrapper funktion for lexographical_compare funktion. Den slags () funktion, du vil bruge senere kræver sammenligningen funktion til at tage to strenge som argumenter og returnere en bool , der er ikke, hvordan lexographical_compare funktionen fungerer . Du kan erklære denne funktion som en global funktion i dit projekt namespace at gøre det muligt at blive brugt fra nogen del af dit program. Hvis du kun har brug for at alfabetisere et array i en klasse, kan du ønsker at erklære den som en privat medlem function.bool myCompare (string a, string b ) { tilbagevenden lexographical_compare ( a.begin () , a.end () , b . begynde () , b.end ()); }
3 Sorter array ved hjælp af sortering algoritme med sammenligningen funktion, du lige har skrevet : sortering ( myStringArray , myStringArray + myStringArrayCount , myCompare )