Die C + + Standard Template Library ist voll von nützlichen Funktionen für den Umgang mit Daten, einschließlich der Sortier-Algorithmus . Leider, wenn Sie die Sortier-Algorithmus auf einem Array von Zeichenfolgen verwenden, werden sie nicht herauskommen in alphabetischer Reihenfolge . Stattdessen wird standardmäßig sortiert sie in etwas bekannt als ASCIIbetical Bestellung - eine Sortierung auf die interne Codierung der einzelnen Buchstaben basiert. Um alphabetisch zu sortieren , müssen Sie eine Funktion, die Sortier-Algorithmus genau, wie man zwei Strings in der Art und Weise Sie wollen vergleichen erzählt . Anleitung
1
Include alle notwendigen Header , indem Sie die folgenden Zeilen an den Anfang des Programms : # include # include
2 Schreiben Sie eine Wrapper-Funktion für die lexographical_compare Funktion . Die sort () Funktion, die Sie später verwenden wird erfordert den Vergleich Funktion, um zwei Strings als Argumente und geben einen bool , was nicht ist, wie die lexographical_compare Funktion funktioniert. Sie können diese Funktion als globale Funktion in Ihrem Projekt Namensraum deklarieren , damit sie von jedem Teil des Programms verwendet werden. Wenn Sie nur ein Array innerhalb einer Klasse alphabetize , möchten Sie vielleicht , um es als privates Mitglied function.bool myCompare (string a , string b ) {return lexographical_compare ( a.begin () , a.end ( ), b erklären . begin () , b.end ()); }
3
sortieren das Array mithilfe der sort -Algorithmus mit der Vergleichsfunktion Sie schrieb nur : sort ( myStringArray , myStringArray + myStringArrayCount , myCompare );