関数ポインターをラムダ式に置き換えると、可読性が向上し、定型コードが削減され、再利用性が向上します。具体的には、ラムダ式は次の構文を使用します: [キャプチャ リスト](パラメータ リスト) -> 戻り値の型 {body} これは、コードの単純さと保守性を向上させるためにベクトルの並べ替えなどの実際のケースで使用できます。
関数ポインターを C のラムダ式に置き換える
ラムダ式は C++11 で導入され、簡単なメソッドを定義できるようになりました。匿名関数または関数ポインター。関数ポインタをラムダ式に置き換えることには、次のような多くの利点があります。
構文[capture list](parameter list) -> return type { body }
パラメータ リスト:
括弧内のカンマ区切りのパラメータ リスト。// 函数指针方式 int compare(int a, int b) { return a - b; } // Lambda 表达式方式 auto compare = [](int a, int b) { return a - b; };実際のケース:ベクトルの並べ替え
実際のケースでは、ラムダ式の利点がわかります。 #include <vector>
#include <algorithm>
int main() {
std::vector<int> v = { 1, 5, 3, 2, 4 };
// 用 lambda 表达式对向量进行排序
std::sort(v.begin(), v.end(), [](int a, int b) { return a < b; });
// 打印排序后的向量
for (int x : v) {
std::cout << x << " ";
}
return 0;
}
この場合、ラムダ式は、ベクトルの並べ替えに使用される比較関数を定義するために使用されます。 。個別の関数を定義する必要がなく、コードがよりシンプルで理解しやすくなります。
以上が関数ポインターを C++ ラムダ式に置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。