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!
c++ lambda sort
Commentami!