ホームページ  >  記事  >  バックエンド開発  >  C++ ラムダ式を使用してカスタム並べ替えルールを実装するにはどうすればよいですか?

C++ ラムダ式を使用してカスタム並べ替えルールを実装するにはどうすればよいですか?

王林
王林オリジナル
2024-04-17 18:03:011093ブラウズ

C ラムダ式を使用して並べ替えルールをカスタマイズし、並べ替えロジックを柔軟に定義します。構文は次のとおりです: [キャプチャ リスト](パラメータ) -> 戻り値の型 { body }。実際の場合、ラムダ式 sortLambda は文字列の長さで並べ替えられ、出力は犬、リンゴ、バナナ、チェリー、象になります。

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

C ラムダ式を使用して並べ替えルールをカスタマイズする

ラムダ式は、C でカスタムを定義するために使用できる匿名関数です。並べ替えルール。カスタム ロジックに基づいてデータを並べ替える簡単かつ柔軟な方法を提供します。

構文

一般的なラムダ式の構文は次のとおりです:

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

その例:

  • キャプチャ リスト : オプション。外部変数への参照をキャプチャするために使用されます。
  • parameters: オプション。入力パラメータを取得するために使用されます。
  • -> 戻り値の型: 戻り値の型を指定するために使用されるオプション。
  • body: 実行されるコードを含む関数本体。

#実践的なケース

次に、ラムダ式を使用して並べ替えルールをカスタマイズする実践的なケースを示します。これは、文字列ベクトルを長さによって並べ替えるのに使用されます。 ##
#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
この例では、ラムダ式

sortLambda

が外部変数 a と ## をキャプチャします。 #b を返し、a の長さが b の長さより小さいかどうかを返します。ソート関数 sort は、このラムダ式を使用して、文字列のベクトルを長さの昇順に並べ替えます。

以上がC++ ラムダ式を使用してカスタム並べ替えルールを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。