所谓lambda表达式,本质就是没有名字的函数(匿名函数)
#include "stdafx.h"
#include <algorithm>
int main(){
//[]捕获列表 ()参数列表 ->返回值
int c = [](int a,int b) -> int{
return a+b;
}(1,2); //直接调用
}
lambda表达式只能调用一次,但是能够存储起来
#include "stdafx.h"
#include <algorithm>
int main(){
//[]捕获列表 ()参数列表 ->返回值
int c = [](int a,int b) -> int{
return a+b;
}(1,2); //直接调用
std::cout<<c<<std::endl;
auto f = [](int a,int b) -> int{
return a+b;
};
c = f(2,3);
std::cout<<c<<std::endl;
}
结果为2,5
lambda表达式的嵌套
int c = [](int n) ->int{
return [n](int x) ->int{ //
return n+x;
}(1);
}(2);
//将lambda表达式存储起来
auto f = [](int n) ->int{
return [n](int x) ->int{
return n+x;
};
};
int c = f(1)(2);
更具体的用法,请参考这篇文章c++ lambda 看这篇就够了!(有点详细)