Heim > Backend-Entwicklung > C++ > Hauptteil

Wie implementiert man benutzerdefinierte Sortierregeln mithilfe von C++-Lambda-Ausdrücken?

王林
Freigeben: 2024-04-17 18:03:01
Original
1097 Leute haben es durchsucht

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.

用 C++ lambda 表达式自定义排序规则如何实现?

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 }
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

输出

dog
apple
banana
cherry
elephant
Nach dem Login kopieren

在这个示例中,lambda 表达式 sortLambda 捕获了对外部变量 ab 的引用,并返回 a 的长度是否小于 b 的长度。排序函数 sortparameters: 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage