Menu
Coddy logo textTech

Einführung in Lambda-Ausdrücke

Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy. Lektion 42 von 56.

Lambda-Ausdrücke sind ein leistungsstarkes C++-Feature, mit dem du kleine, anonyme Funktionen direkt dort erstellen kannst, wo du sie brauchst. Stell sie dir als Mini-Funktionen vor, die du definieren und verwenden kannst, without eine separate function-Deklaration schreiben zu müssen.

Die grundlegende Syntax für einen Lambda-Ausdruck folgt diesem Muster: [](){}. Die eckigen Klammern [] werden als capture clause bezeichnet, die runden Klammern () enthalten Parameter (genau wie reguläre function), und die geschweiften Klammern {} enthalten den function body.


Die capture clause steuert, welche variable aus dem umgebenden Gültigkeitsbereich die Lambda verwenden kann. Die häufigsten Formen sind:

[=] — alle lokalen variable by value erfassen (die Lambda erhält eine eigene copy)
[&] — alle lokalen variable by reference erfassen (die Lambda greift auf die ursprünglichen zu)
[] — nichts erfassen (die Lambda kann keine Variablen außerhalb verwenden)

So erstellst und rufst du eine einfache lambda auf:

auto myLambda = []() {
    std::cout << "Hello from Lambda!" << std::endl;
};

myLambda();  // Rufe die Lambda-Funktion auf

Du kannst auch eine lambda immediately definieren und ausführen, without sie in einer variable zu speichern:

[]() {
    std::cout << "Immediate execution!" << std::endl;
}();

Lambda-Ausdrücke sind besonders nützlich für kurze, einmalige functions, die du nicht separat definieren möchtest. Sie machen deinen Code prägnanter und halten zusammengehörige Logik eng beieinander.

challenge icon

Aufgabe

Einfach

Erstelle ein Programm, das die grundlegende Syntax und execution von lambda-expressions demonstriert. Diese Herausforderung testet dein Verständnis dafür, wie einfache lambda-functions without Parameter definiert und aufgerufen werden.

Dein Programm sollte:

  1. Eine lambda-expression erstellen, die Hello from Lambda! prints
  2. Diese lambda in einer variable using das auto-keyword Store
  3. Die lambda-function aufrufen, um sie auszuführen
  4. Eine second lambda-expression erstellen, die Lambda executed successfully! prints
  5. Diese second lambda immediately Execute, without sie in einer variable zu speichern

Verwende das folgende exakte Ausgabeformat:

Hello from Lambda!
Lambda executed successfully!

Denke daran, dass lambda-expressions die Syntax [](){} verwenden, wobei die eckigen Klammern [] die Erfassungsklausel sind, die Klammern () Parameter enthalten (für diese Herausforderung leer) und die geschweiften Klammern {} den Funktionskörper enthalten. Du kannst eine lambda in einer variable using auto variableName = [](){...}; speichern und sie anschließend mit variableName(); aufrufen. Für die sofortige Ausführung kannst du die Syntax [](){...}(); verwenden, die die lambda in einer Anweisung definiert und aufruft.

Probier es selbst

#include <iostream>
using namespace std;

int main() {
    // TODO: Schreibe deinen Code darunter
    // Create a lambda expression that prints "Hello from Lambda!"
    // Speichere es in einer Variable mit dem auto-Schlüsselwort
    
    // Rufe die Lambda-Funktion auf
    
    // Create a second lambda that prints "Lambda executed successfully!"
    // Führe es sofort aus, ohne es in einer Variable zu speichern
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C++-Compiler