Die Sortierfunktion verwendet eine benutzerdefinierte Vergleichsfunktion, um eine benutzerdefinierte Sortierung zu implementieren: Schreiben Sie eine Vergleichsfunktion: Geben Sie die Sortierregeln an, definieren Sie Parametertypen und Rückgabewerte. Rufen Sie die Sortierfunktion auf: Übergeben Sie die benutzerdefinierte Vergleichsfunktion als dritten Parameter, um die Elemente im Container zu sortieren. Beispiel: Sortieren Sie Ganzzahlen in absteigender Reihenfolge und Zeichenfolgen nach benutzerdefinierten Regeln (leere Zeichenfolge zuerst, Länge zuerst, lexikografische Reihenfolge).
So verwenden Sie die Sortierfunktion in C++, um eine benutzerdefinierte Sortierfunktion zu implementieren
Die Funktion sort
ist eine wichtige Funktion in der C++-Standardbibliothek und wird zum Sortieren von Elementen in einem Container verwendet. Es erhält eine Vergleichsfunktion per Referenz, die es dem Benutzer ermöglicht, Elemente nach benutzerdefinierten Kriterien zu sortieren. sort
函数是 C++ 标准库中的一个重要函数,用于对容器中的元素进行排序。它以引用方式接收一个比较函数,允许用户根据自定义条件对元素进行排序。
比较函数的语法
比较函数的语法如下:
bool compare(const T1& a, const T2& b);
其中:
T1
和 T2
是要比较的元素类型。true
表示 a
小于 b
。false
表示 a
大于或等于 b
。实现定制排序
要使用 sort
函数实现定制排序,您需要编写一个指定排序行为的自定义比较函数。以下是一个示例:
#include <algorithm> #include <vector> using namespace std; bool compareIntsDescending(int a, int b) { return a > b; } int main() { vector<int> numbers = {1, 5, 2, 4, 3}; sort(numbers.begin(), numbers.end(), compareIntsDescending); for (auto& num : numbers) { cout << num << " "; } cout << endl; return 0; }
这个程序的输出:
5 4 3 2 1
在这个例子中,compareIntsDescending
Syntax der Vergleichsfunktion
Die Syntax der Vergleichsfunktion lautet wie folgt:bool compareStrings(string a, string b) { // 检查是否为空字符串 if (a.empty() && !b.empty()) { return true; } else if (!a.empty() && b.empty()) { return false; } // 空字符串相等 if (a.empty() && b.empty()) { return false; } // 比较长度 if (a.length() < b.length()) { return true; } else if (a.length() > b.length()) { return false; } // 长度相同时按字母顺序比较 return (a < b); }
T1
und T2
sind die zu verwendenden Elementtypen verglichen. Gib true
zurück, um anzugeben, dass a
kleiner als b
ist. Gib false
zurück, um anzugeben, dass a
größer oder gleich b
ist.
Benutzerdefinierte Sortierung implementieren
Um eine benutzerdefinierte Sortierung mit der Funktionsort
zu implementieren, müssen Sie eine benutzerdefinierte Vergleichsfunktion schreiben, die das Sortierverhalten angibt. Hier ist ein Beispiel: 🎜#include <algorithm> #include <vector> using namespace std; int main() { vector<string> strings = {"apple", "banana", "cherry", "dog", "cat", ""}; sort(strings.begin(), strings.end(), compareStrings); for (auto& str : strings) { cout << str << " "; } cout << endl; return 0; }
dog cat apple banana cherry
compareIntsDescending
die Ganzzahlen vom größten zum kleinsten. 🎜🎜🎜Praktischer Fall: Sortieren von Zeichenfolgen nach benutzerdefinierten Regeln🎜🎜🎜Angenommen, Sie haben ein Array von Zeichenfolgen und möchten diese nach den folgenden Regeln sortieren: 🎜🎜🎜Leere Zeichenfolgen werden zuerst sortiert. 🎜🎜Längere Zeichenfolgen werden zuerst sortiert (oder alphabetisch, wenn die Länge gleich ist). 🎜🎜🎜 Sie können die folgende Vergleichsfunktion schreiben, um dies zu erreichen: 🎜rrreee🎜 Dann können Sie diese Vergleichsfunktion verwenden, um das String-Array wie folgt zu sortieren: 🎜rrreee🎜🎜Ausgabe dieses Programms: 🎜🎜rrreeeDas obige ist der detaillierte Inhalt vonSo verwenden Sie die C++-Sortierfunktion richtig, um eine benutzerdefinierte Sortierfunktion zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!