#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;voidlearn_lambda(){
vector<int> vec{1,11,3,0,19,22,7,1,5};// 例1
auto f =[](int a, int b)-> bool{return a > b;};sort(vec.begin(), vec.end(), f);for(auto it : vec){
cout << it << endl;}// Lambda表达式 []表示不捕获外围变量 ()表示参数列表 ->表示返回值类型(可忽略)
auto f1 =[](int a, int b)-> int{return a + b;};
cout <<f1(1,2)<< endl;// 例2// []变量捕获Capture Clause // []中变量名前有引用符号则为按引用捕获,可以修改外围变量的值// 不加&,则为按值捕获,不能修改外围变量的值
int N=100,M=10;
auto g =[N,&M](int i){M=20;returnN* i;};
cout <<g(10)<< endl;
cout <<M<< endl;}
int main(){learn_lambda();return0;}