Usare le funzioni lambda in C++

Mattepuffo's logo
Usare le funzioni lambda in C++

Usare le funzioni lambda in C++

Le funzioni lambda sono usate in tantissimi linguaggi, orami vanno di moda.

Anche in C++ possiamo usarle (ma attenzione che non so da quale versione).

In questo articolo vediamo qualche esempio.

Cominciamo con la basica somma:

#include <iostream>

using namespace std;

int main() {
    int c = 10;

    auto add = [c](int a, int b) -> int {
        return a + b + c;
    };

    cout << "SOMMA: " << add(10, 3) << endl;

    return 0;
}

Come vedete possiamo passare dei parametri sia alla funzione che al "surrounding scope".

Possiamo passare i valori anche by reference ovviamente:

#include <iostream>

using namespace std;

int main() {
    int a = 10;
    int b = 3;

    auto printRef = [a, &b]() {
        cout << "A: " << a << ";B: " << b << endl;
    };

    printRef();

    return 0;
}

Un altro esempio interessante è il suo per fare il sorting:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> lista = {5, 10, 6, 13, 1 , 9};

    sort(lista.begin(), lista.end(), [](int x, int y) {
        return x > y;
    });

    for (int i : lista) {
        cout << "Numero: " << i << endl;
    }

    return 0;
}

Enjoy!


Condividi

Commentami!