C + + Standard Template Library est plein de fonctions utiles pour le traitement des données, y compris l'algorithme de tri . Malheureusement , si vous utilisez l'algorithme de tri sur un tableau de chaînes , ils ne sortiront pas dans l'ordre alphabétique . Au lieu de cela , il est par défaut à les trier en quelque chose de connu comme l'ordre ASCIIbetical - un tri basé sur le codage interne des lettres individuelles. Pour trier par ordre alphabétique , vous devez fournir une fonction qui indique l'algorithme de tri exactement comment comparer deux chaînes de la manière que vous voulez. Instructions
1
inclure tous les en-têtes nécessaires en ajoutant les lignes suivantes au début de votre programme : # include # include
2 < p > Ecrire une fonction wrapper pour la fonction lexographical_compare . La fonction sort () , vous utiliserez plus tard nécessite la fonction de comparaison de prendre deux chaînes comme arguments et retourner un booléen , ce qui n'est pas le mode de fonctionnement de la fonction lexographical_compare . Vous pouvez déclarer cette fonction comme une fonction globale dans l'espace de noms de votre projet pour lui permettre d' être utilisé à partir de n'importe quelle partie de votre programme. Si vous ne devez alphabétiser un tableau dans une classe, vous pouvez déclarer en tant que membre privé function.bool myCompare (string a, string b ) {return lexographical_compare ( a.begin (), a.end (), b . begin () , b.end ()); }
3 trier le tableau en utilisant l'algorithme de tri avec la fonction de comparaison que vous venez d'écrire : trier ( myStringArray , myStringArray + myStringArrayCount , myCompare ) ;