C++-Lambda-Ausdrücke: Ein leistungsstarkes Tool für bestimmte Szenarien
Einführung
Lambda-Ausdrücke sind eine in C++ eingeführte anonyme Funktion, mit der Sie kurze Inline-Funktionsobjekte erstellen können. Sie eignen sich hervorragend für die Bearbeitung einfacher Aufgaben, die keine Deklarationen oder separate Benennung erfordern.
Lambda-Syntax
Lambda-Ausdrücke verwenden die folgende Syntax:
[capture-list](parameters) -> return-type { body }
Verwendungen
Lambda-Ausdrücke sind besonders nützlich in den folgenden Szenarien:
std::sort
和 std::find
. Praktischer Fall
1. Als Rückruffunktion
Der folgende Code verwendet Lambda-Ausdruck, um die Zeichenfolge in Großbuchstaben umzuwandeln:
#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 Als STL-Algorithmus-Parameter
Der folgende Code verwendet Lambda Ausdruck Finden Sie die erste Zahl größer als 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. Als Abschluss
Der folgende Code zeigt, wie ein Abschluss mithilfe von Lambda-Ausdrücken erstellt wird:
#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; }
Hinweis: Im Vergleich zu benannten Funktionen gibt es Lambda-Ausdrücke die folgenden Einschränkungen:
Wägen Sie bei der Verwendung von Lambda-Ausdrücken sorgfältig deren Vorteile und Einschränkungen ab, um festzustellen, ob sie für Ihr spezifisches Szenario die beste Wahl sind.
Das obige ist der detaillierte Inhalt vonIn welchen Szenarien sind C++-Lambda-Ausdrücke besonders nützlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!