“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。
| 1 | [capture list] (parameter list) -> returntype { function body } | 
| 1 2 3 4 | boolcompare(int& a,int& b){    returna>b;} | 
| 1 | sort(a, a+n, compare); | 
| 1 | sort(a, a+n, [](inta,intb){returna>b;});//降序排序 | 
| 1 | autof=[](inta,intb){returna>b;}; | 
| 1 2 3 4 | autof=[x](inta,intb){returna>x;};//x被捕获复制intx=0, y=1;autog=[&](intx){return++y;};//y被捕获引用,调用g后会修改y,需要注意y的生存期bool(*fp)(int, int)=[](inta,intb){returna>b;};//不捕获时才可转换为函数指针 | 
| 1 | sort(a, a+n, [](constauto& a,constauto& b){returna>b;});//降序排序:不依赖a和b的具体类型 | 
原文:https://www.cnblogs.com/Murcie/p/10830365.html