De C + + Standard Template Library is vol met handige functies voor het omgaan met gegevens , met inbegrip van het soort algoritme. Helaas, als je het soort algoritme te gebruiken op een array van strings , zullen ze niet komen in alfabetische volgorde . In plaats daarvan , wordt standaard het sorteren ze in iets bekend als asciibetische orde - een sortering op basis van de interne codering van de afzonderlijke letters . Om alfabetisch te sorteren , moet u een functie die het soort algoritme precies hoe twee snaren in de manier waarop u wilt vergelijken vertelt bieden . Instructies 1 Inclusief alle van de nodige headers door de volgende regels toe te voegen aan het begin van het programma : # include # include kopen van 2 Schrijf een wrapper functie voor de lexographical_compare functie . De sort ( ) -functie zul je later gebruiken vereist de vergelijking functie om twee strings als argumenten en terug te keren van een bool , dat is niet hoe het lexographical_compare functie werkt . U kunt deze functie te verklaren als een globale functie in namespace uw project , zodat het gebruikt kan worden vanuit alle delen van uw programma . Als u alleen nodig hebt om een array alfabetisch binnen een klasse , kunt u wensen om het te verklaren als een prive- lid function.bool myCompare (string a , touwtje b ) { return lexographical_compare ( a.begin ( ) , a.end ( ) , b . begin () , b.end ( ) ) ; } 3 Sorteer de array met behulp van de sorteer -algoritme met de vergelijking functie die u zojuist schreef : sort ( myStringArray , myStringArray + myStringArrayCount , myCompare ) ;
|