Heim  >  Artikel  >  Backend-Entwicklung  >  Wie definiere und verwende ich C++-Lambda-Ausdrücke?

Wie definiere und verwende ich C++-Lambda-Ausdrücke?

WBOY
WBOYOriginal
2024-04-17 09:51:01603Durchsuche

C++-Lambda-Ausdruck ist eine anonyme Funktion, die zum Inline-Definieren von Funktionen mit der Syntax verwendet wird: [Erfassungsliste](Parameter) -> Sie können Variablen im äußeren Bereich erfassen, Parameter übergeben und Rückgabetypen angeben. Lambda-Ausdrücke werden verwendet, wenn Sie eine Funktion als Parameter übergeben oder eine Funktion in einem bestimmten Kontext definieren müssen, beispielsweise zum Übergeben von Parametern, zum Erfassen von Variablen und zum Sortieren von Listen.

C++ lambda 表达式如何定义和使用?

C++-Lambda-Ausdruck: Definition und Verwendung

Einführung
Lambda-Ausdruck ist eine spezielle anonyme Funktion in der C++-Sprache, mit der Sie Inline-Funktionen auf prägnante Weise definieren können. Sie werden häufig in Situationen verwendet, in denen Sie eine Funktion als Parameter übergeben oder eine Funktion in einem bestimmten Kontext definieren müssen.

Syntax
Die Syntax des Lambda-Ausdrucks lautet wie folgt:

[capture list](parameters) -> return_type {
  // 函数体
}

Erfassungsliste
Die Erfassungsliste wird verwendet, um Variablen im äußeren Bereich des Lambda-Ausdrucks zu erfassen. Variablen können nach Wert oder nach Referenz erfasst werden.

Parameter
Mit der Parameterliste können Sie Argumente an Lambda-Ausdrücke übergeben.

Rückgabetyp
Wenn der Lambda-Ausdruck einen Wert zurückgibt, müssen Sie den Rückgabetyp angeben. Andernfalls sollte der Rückgabetyp void sein.

Funktionskörper
Ähnlich wie bei einer normalen Funktion enthält der Funktionskörper den Code, der als Lambda-Ausdruck verwendet werden soll.

Verwendung
Hier sind einige Anwendungsbeispiele für Lambda-Ausdrücke:

Einfaches Beispiel

[]() { std::cout << "Hello, world!" << std::endl; }();

Übergabe von Parametern

int add(int a, int b) { return a + b; }

[] (int a, int b) { return a + b;  }(5, 6); // 调用 lambda 表达式

Erfassen von Variablen

int x = 10;
[x] () { std::cout << "Value of x: " << x << std::endl; }();

Praktischer Fall
Betrachten Sie ein Beispiel für eine Bedarfspaarliste Zahlen sortieren:

std::vector<int> numbers = {2, 5, 1, 3, 4};

std::sort(numbers.begin(), numbers.end(),
    [](int a, int b) { return a < b; });

for (auto num : numbers) {
    std::cout << num << " ";
}

Ausgabe:

1 2 3 4 5

Fazit
Lambda-Ausdrücke sind ein leistungsstarkes Werkzeug zum Definieren von Inline-Funktionen in C++. Sie vereinfachen den Code, verbessern die Lesbarkeit und reduzieren den Bedarf an Standardcode. Wenn Sie deren Syntax, Verwendung und praktische Beispiele verstehen, können Sie Lambda-Ausdrücke effektiv verwenden, um eine Vielzahl von Programmierproblemen zu lösen.

Das obige ist der detaillierte Inhalt vonWie definiere und verwende ich C++-Lambda-Ausdrücke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn