lambda表达式用于创建匿名函数,正常函数是有函数名,函数体,函数参数,而lambda可以通过atuo一个指针来指向一个匿名函数,如auto func=[](){};
然后看看[],lambda函数是为了快捷创建的一个局部函数,可以写在一个函数体内,但是函数体内的变量lambda是获取不到的,这里假设int x已经定义好,[=]是按值捕获lambda函数外的所有变量,即[](){cout<<x;}是可以成功输出x的,[x]就是显式传x值,也可以成功输出x,但是第一种方式像渣男一样可以捕获多个,第二种方式就是单一的,[&]就是传递地址 ,唯一和[=]不同的是[&]可以修改捕获的变量,而=是不能修改捕获的变量。
最后,()就是这个匿名函数的参数,{}是函数体,当然这只是我简单的理解 ,也是举了一个简单例子,书上也会有更官方更详细的解释和例子,可以对比理解理解。