Heim > Artikel > Backend-Entwicklung > Wie implementiert man benutzerdefinierte Sortierregeln mithilfe von C++-Lambda-Ausdrücken?
Verwenden Sie C++-Lambda-Ausdrücke, um Sortierregeln anzupassen und die Sortierlogik flexibel zu definieren. Die Syntax lautet: [Erfassungsliste](Parameter) -> Rückgabetyp {Body}. Im tatsächlichen Fall sortiert der Lambda-Ausdruck sortLambda nach String-Länge und die Ausgabe lautet: Hund, Apfel, Banane, Kirsche, Elefant.
Benutzerdefinierte Sortierung mit C++-Lambda-Ausdruck
Lambda-Ausdruck ist eine anonyme Funktion, die zum Definieren einer benutzerdefinierten Sortierung in C++ verwendet werden kann. Es bietet eine einfache und flexible Möglichkeit, Ihre Daten basierend auf benutzerdefinierter Logik zu sortieren.
Syntax
Die typische Lambda-Ausdruckssyntax lautet wie folgt:
[capture list](parameters) -> return type { body }
Wobei:
Erfassungsliste
: Optional, wird zum Erfassen von Verweisen auf externe Variablen verwendet. capture list
:可选,用于捕获对外部变量的引用。parameters
:可选,用于获取输入参数。-> return type
:可选,用于指定返回类型。body
:函数体,包含要执行的代码。实战案例
下面是一个使用 lambda 表达式自定义排序规则的实战案例,用于对一个字符串向量按其长度排序:
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<string> strings = {"apple", "banana", "cherry", "dog", "elephant"}; // 定义 lambda 表达式,将字符串按长度排序 auto sortLambda = [](const string& a, const string& b) { return a.length() < b.length(); }; // 使用 lambda 表达式对向量排序 sort(strings.begin(), strings.end(), sortLambda); // 打印排序后的向量 for (const string& s : strings) { cout << s << endl; } return 0; }
输出
dog apple banana cherry elephant
在这个示例中,lambda 表达式 sortLambda
捕获了对外部变量 a
和 b
的引用,并返回 a
的长度是否小于 b
的长度。排序函数 sort
parameters
: Optional, wird zum Abrufen von Eingabeparametern verwendet.
-> Rückgabetyp
: Optional, wird zur Angabe des Rückgabetyps verwendet. 🎜body
: Funktionskörper, der den auszuführenden Code enthält. 🎜🎜Praktischer Fall🎜🎜🎜Das Folgende ist ein praktischer Fall, bei dem ein Lambda-Ausdruck zum Anpassen von Sortierregeln verwendet wird, der zum Sortieren eines Zeichenfolgenvektors nach seiner Länge verwendet wird: 🎜rrreee🎜🎜Ausgabe🎜🎜rrreee 🎜 In diesem Beispiel erfasst der Lambda-Ausdruck sortLambda
Verweise auf die externen Variablen a
und b
und gibt a
zurück. Ob die Länge von Code> ist kleiner als die Länge von b
. Die Sortierfunktion sort
verwendet diesen Lambda-Ausdruck, um einen Vektor von Zeichenfolgen in aufsteigender Reihenfolge ihrer Länge zu sortieren. 🎜Das obige ist der detaillierte Inhalt vonWie implementiert man benutzerdefinierte Sortierregeln mithilfe von C++-Lambda-Ausdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!