Menu
Coddy logo textTech

Lambda con parametri

Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 43 di 56.

Ora che hai compreso la sintassi di base delle lambda, rendiamole più utili aggiungendo parametri. Proprio come le funzioni normali, le lambda possono accettare valori di input con cui lavorare.

Per aggiungere parametri a una lambda, inseriscili tra parentesi dopo la clausola di acquisizione:

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

addNumbers(5, 3);  // Stampa: Sum: 8

La sintassi dei parametri funziona esattamente come quella dei parametri di funzione regolari: specifichi il tipo seguito dal nome del parametro. Puoi avere più parametri separati da virgole, proprio come mostrato sopra.

Puoi anche chiamare subito una lambda con parametri senza memorizzarla:

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

Questa possibilità di accettare parametri rende le lambda molto più flessibili e riutilizzabili, consentendoti di creare piccole funzioni in grado di elaborare valori di input diversi ogni volta che vengono chiamate.

challenge icon

Sfida

Facile

Crea un programma che dimostri le espressioni lambda con parametri realizzando una semplice calcolatrice che esegue diverse operazioni matematiche. Questa sfida metterà alla prova la tua comprensione di come definire espressioni lambda che accettano valori in input e li utilizzano.

Verranno forniti i seguenti input:

  • Due numeri interi num1 e num2 che rappresentano i numeri da usare nei calcoli
  • Un carattere operation che rappresenta l'operazione matematica da eseguire

Il tuo programma dovrebbe:

  1. Creare un'espressione lambda denominata add che accetta due parametri interi e stampa la loro somma nel formato Sum: [result]
  2. Creare un'espressione lambda denominata subtract che accetta due parametri interi e stampa la loro differenza nel formato Difference: [result]
  3. Creare un'espressione lambda denominata multiply che accetta due parametri interi e stampa il loro prodotto nel formato Product: [result]
  4. Leggere i due numeri e il carattere dell'operazione dall'input
  5. In base al carattere dell'operazione, chiamare la lambda appropriata con i due numeri

Il carattere dell'operazione sarà uno dei seguenti:

  • + per l'addizione (chiamare la lambda add)
  • - per la sottrazione (chiamare la lambda subtract)
  • * per la moltiplicazione (chiamare la lambda multiply)

Usa il seguente formato di output esatto in base all'operazione:

Per l'addizione:

Sum: [result]

Per la sottrazione:

Difference: [result]

Per la moltiplicazione:

Product: [result]

Ricorda che i parametri delle lambda si definiscono tra parentesi dopo la clausola di cattura, usando la stessa sintassi dei normali parametri di funzione. Memorizza ogni lambda in una variabile usando la parola chiave auto, quindi chiama la lambda appropriata in base al carattere dell'operazione inserito, usando un'istruzione if-else o switch.

Provalo tu

#include <iostream>
using namespace std;

int main() {
    // Leggi l'input
    int num1, num2;
    char operation;
    cin >> num1 >> num2 >> operation;
    
    // TODO: Crea espressioni lambda per le operazioni di addizione, sottrazione e moltiplicazione
    // TODO: Usa un'istruzione if-else o switch per chiamare la lambda appropriata in base a operation
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online