首頁  >  文章  >  後端開發  >  用 C++ lambda 表達式自訂排序規則如何實作?

用 C++ lambda 表達式自訂排序規則如何實作?

王林
王林原創
2024-04-17 18:03:011042瀏覽

使用 C Lambda 表達式自訂排序規則,可靈活定義排序邏輯。語法為:[capture list](parameters) -> return type { body }。實戰案例中,lambda 表達式 sortLambda 依字串長度排序,輸出為:dog、apple、banana、cherry、elephant。

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

用C Lambda 表達式自訂排序規則

Lambda 表達式是一種匿名函數,可以在C 中使用來定義自訂排序規則。它提供了簡單且靈活的方式,使您可以根據自訂邏輯對資料進行排序。

語法

典型的lambda 表達式語法如下:

[capture list](parameters) -> return type { body }

其中:

  • 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 捕獲了對外部變數ab 的引用,並傳回a 的長度是否小於b 的長度。排序函數 sort 使用此 lambda 表達式對字串向量進行排序,按字串的長度升序排列。

以上是用 C++ lambda 表達式自訂排序規則如何實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn