C++ ラムダ式: 特定のシナリオ向けの強力なツール
はじめに
ラムダ式は、C++ で導入された匿名関数で、短いインライン関数オブジェクトを作成できます。これらは、宣言や個別の名前付けを必要としない単純なタスクを処理するのに最適です。
ラムダ構文
ラムダ式は次の構文を採用します:
[capture-list](parameters) -> return-type { body }
使用
ラムダ式は、次のシナリオで特に役立ちます:
std::sort
和 std::find
などの標準ライブラリ アルゴリズムにパラメーターとして渡されます。 実際のケース
1. コールバック関数として
次のコードはラムダ式を使用して文字列を大文字に変換します:
#include <iostream> #include <string> using namespace std; int main() { string str = "hello"; transform(str.begin(), str.end(), str.begin(), [](char c) { return toupper(c); }); cout << str << endl; // 输出:HELLO return 0; }
2. STL アルゴリズムパラメータとして
次のコードはラムダを使用します。式 5 より大きい最初の数値を検索します:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums = {1, 3, 5, 7, 9}; auto it = find_if(nums.begin(), nums.end(), [](int n) { return n > 5; }); if (it != nums.end()) { cout << "找到了第一个大于 5 的数字:" << *it << endl; // 输出:7 } else { cout << "没有找到大于 5 的数字" << endl; } return 0; }
3. クロージャとして
次のコードは、ラムダ式を使用してクロージャを作成する方法を示しています:
#include <iostream> using namespace std; int main() { int x = 10; auto f = [x](int y) { return x + y; }; cout << f(5) << endl; // 输出:15 return 0; }
注: 名前付き関数と比較すると、ラムダ式には次のものがあります。次の制限があります:
ラムダ式を使用する場合は、その利点と制限を慎重に比較検討して、特定のシナリオにとって最適な選択であるかどうかを判断してください。
以上がC++ ラムダ式はどのようなシナリオで特に役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。