Menu
Coddy logo textTech

Lambdas mit Parametern

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

Nachdem du nun die grundlegende Lambda-Syntax verstanden hast, machen wir Lambdas durch das Hinzufügen von Parametern nützlicher. Genau wie reguläre Funktionen können Lambdas Eingabewerte akzeptieren, mit denen sie arbeiten.

Um Parameter zu einer Lambda-Funktion hinzuzufügen, platziere sie innerhalb der Klammern nach der Capture-Klausel:

auto addNumbers = [](int a, int b) {
    std::cout << "Sum: " << (a + b) << std::endl;
};

addNumbers(5, 3);  // Gibt aus: Sum: 8

Die Parametersyntax funktioniert genau wie bei regulären Funktionsparametern – Sie geben den Typ gefolgt vom Parameternamen an. Sie können mehrere Parameter durch Kommas getrennt angeben, genau wie oben gezeigt.

Du kannst eine Lambda-Funktion auch sofort mit Parametern aufrufen, ohne sie zu speichern:

[](int x, int y) {
    std::cout << "Product: " << (x * y) << std::endl;
}(4, 7);  // Gibt aus: Product: 28

Diese Fähigkeit, Parameter zu akzeptieren, macht Lambdas wesentlich flexibler und wiederverwendbarer, da sie es Ihnen ermöglicht, kleine Funktionen zu erstellen, die bei jedem Aufruf unterschiedliche Eingabewerte verarbeiten können.

challenge icon

Aufgabe

Einfach

Erstelle ein Programm, das Lambda-Ausdrücke mit Parametern demonstriert, indem es einen einfachen Taschenrechner erstellt, der verschiedene mathematische Operationen ausführt. Diese Herausforderung testet dein Verständnis dafür, wie man Lambda-Ausdrücke definiert, die Eingabewerte akzeptieren und mit ihnen arbeiten.

Die folgenden Eingaben werden bereitgestellt:

  • Zwei Ganzzahlen num1 und num2, die die Zahlen für die Berechnungen darstellen
  • Ein Zeichen operation, das die auszuführende mathematische Operation darstellt

Dein Programm sollte:

  1. Einen Lambda-Ausdruck namens add erstellen, der zwei Ganzzahlparameter übernimmt und ihre Summe im Format Sum: [result] ausgibt
  2. Einen Lambda-Ausdruck namens subtract erstellen, der zwei Ganzzahlparameter übernimmt und ihre Differenz im Format Difference: [result] ausgibt
  3. Einen Lambda-Ausdruck namens multiply erstellen, der zwei Ganzzahlparameter übernimmt und ihr Produkt im Format Product: [result] ausgibt
  4. Die beiden Zahlen und das Operationszeichen aus der Eingabe lesen
  5. Abhängig vom Operationszeichen das passende Lambda mit den beiden Zahlen aufrufen

Das Operationszeichen ist eines der folgenden:

  • + für die Addition (das add-Lambda aufrufen)
  • - für die Subtraktion (das subtract-Lambda aufrufen)
  • * für die Multiplikation (das multiply-Lambda aufrufen)

Verwende abhängig von der Operation das folgende exakte Ausgabeformat:

Für die Addition:

Sum: [result]

Für die Subtraktion:

Difference: [result]

Für die Multiplikation:

Product: [result]

Denke daran, dass Lambda-Parameter innerhalb der Klammern nach der Capture-Klausel definiert werden, wobei dieselbe Syntax wie bei regulären Funktionsparametern verwendet wird. Speichere jedes Lambda mit dem Schlüsselwort auto in einer Variable und rufe anschließend abhängig vom eingegebenen Operationszeichen das passende Lambda mithilfe einer if-else-Anweisung oder einer switch-Anweisung auf.

Probier es selbst

#include <iostream>
using namespace std;

int main() {
    // Eingabe lesen
    int num1, num2;
    char operation;
    cin >> num1 >> num2 >> operation;
    
    // TODO: Lambda-Ausdrücke für Additions-, Subtraktions- und Multiplikationsoperationen erstellen
    // TODO: if-else- oder switch-Anweisung verwenden, um das entsprechende Lambda basierend auf der Operation aufzurufen
    
    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