Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Lambda-Funktionen | Einige Fortgeschrittene Themen
C++-Funktionen

Lambda-Funktionen

Swipe um das Menü anzuzeigen

Lambda-Funktionen, oder anonyme Funktionen, sind ein Feature, das es ermöglicht, kleine, unbenannte Funktionen direkt im Code zu erstellen. Sie sind besonders nützlich, wenn eine einfache Funktion für einen kurzen Zeitraum benötigt wird und keine separate benannte Funktion definiert werden soll.

Lambda-Funktionen sind aus mehreren Gründen nützlich:

Prägnanz
expand arrow

Lambda-Funktionen ermöglichen das Schreiben von kurzem und prägnantem Code. Sie sind ideal für Operationen, die sich in wenigen Zeilen ausdrücken lassen.

Lokaler Gültigkeitsbereich
expand arrow

Sie können Variablen aus dem umgebenden Gültigkeitsbereich erfassen, sodass Variablen aus der übergeordneten Funktion innerhalb der Lambda verwendet werden können.

Flexibilität
expand arrow

Lambdas können als Argumente an andere Funktionen übergeben werden, was sie praktisch für Funktionen wie std::for_each, std::sort usw. macht.

Wie erstellt man eine Lambda-Funktion?

Mit der folgenden Syntax kann eine Lambda-Funktion erstellt werden.

lambda_function.h

lambda_function.h

123
[capture_clause](parameter_list) -> return_type { // function body }

Eine Capture-Klausel in einer Lambda-Funktion ermöglicht es, festzulegen, welche Variablen aus dem umgebenden Gültigkeitsbereich (außerhalb der Lambda-Funktion) innerhalb der Lambda-Funktion verwendet werden können. Es gibt drei gängige Arten von Capture-Klauseln:

  • Nichts erfassen []: Die Lambda-Funktion kann auf keine Variablen aus dem umgebenden Gültigkeitsbereich zugreifen;

  • Spezifische Variablen per Wert erfassen [var1, var2, ...]: Die Lambda-Funktion kann auf bestimmte Variablen aus dem umgebenden Gültigkeitsbereich per Wert zugreifen;

  • Spezifische Variablen per Referenz erfassen [&var1, &var2, ...]: Die Lambda-Funktion kann auf bestimmte Variablen aus dem umgebenden Gültigkeitsbereich per Referenz zugreifen.

main.cpp

main.cpp

1234567891011121314
#include <iostream> int main() { int multiplier = 2; // Lambda function capturing `multiplier` by reference // With explicit return type (`int`) int result = [&multiplier](int num) -> int { return num * num * multiplier; }(5); // Invoking the lambda with argument 5 std::cout << result << std::endl; }

Die Funktion wird wie folgt konstruiert:

  • Die Lambda-Funktion erfasst die Variable multiplier durch Referenz [&multiplier];

  • Der Rückgabetyp -> int gibt an, dass die Lambda-Funktion einen Integer zurückgibt;

  • Die Lambda-Funktion wird sofort mit dem Argument 5 aufgerufen und das Ergebnis in der Variable result gespeichert.

question mark

Was ist der Zweck einer Capture-Klausel in einer Lambda-Funktion?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 4. Kapitel 4
some-alt