The C + + Standard Template Library er full av nyttige funksjoner for håndtering av data , inkludert den slags algoritme . Dessverre, hvis du bruker den slags algoritme på en rekke strenger , vil de ikke komme ut i alfabetisk rekkefølge . Stedet , brukes til å sortere dem i noe som kalles ASCIIbetical orden - en sortering basert på intern koding av de enkelte bokstavene . For å sortere alfabetisk , må du gi en funksjon som forteller hva slags algoritme nøyaktig hvordan du skal sammenligne to strenger på den måten du ønsker. Instruksjoner
en
Inkluder alle nødvendige overskrifter ved å legge til følgende linjer i begynnelsen av programmet : # include # include
2 Skriv en wrapper funksjon for lexographical_compare funksjon . Den sort ( )-funksjonen du vil bruke senere krever sammenligning funksjon for å ta to strenger som argumenter og returnerer en bool , som ikke er hvordan lexographical_compare funksjonen fungerer . Du kan erklære denne funksjonen som en global funksjon i prosjektets navnerommet å tillate det skal brukes fra en hvilken som helst del av programmet . Hvis du bare trenger å alfabetisere en matrise i en klasse , kan du ønsker å erklære det som en privat medlem function.bool myCompare ( string a, streng b ) {return lexographical_compare ( a.begin ( ) , a.end ( ) , b . begynner ( ) , b.end ( )); }
3
Sorter matrisen ved å bruke den slags algoritme med sammenligning funksjonen du nettopp skrev : sort ( myStringArray , myStringArray + myStringArrayCount , myCompare ) ;