1. 前言 C++中的lambda表达式是一种定义匿名函数对象的便捷方式。自C++11起,lambda表达式成为了C++的一部分,它允许你编写内联的、可以捕获上下文变量的函数体,非常适合用作回调函数、临时计算或定义小型函数对象。 2. lambda的语法[ capture_clause ] ( parameters ) -> return_type {
function_body
}
capture_clause:捕获列表,定义了lambda表达式可以从创建它的作用域中捕获哪些变量,以及捕获方式(值捕获或引用捕获)。parameters:参数列表,和普通函数的参数列表一样,用于传递参数给lambda表达式。可以为空。return_type:返回类型,可以省略,此时返回类型会被自动推导。function_body:函数体,包含了lambda表达式的代码逻辑。3. 无参数的lambda表达式auto greet = []() {
std::cout 5. 带返回类型的lambda表达式// 带返回类型的lambda表达式
auto divide=[](double a,double b)-> double{
if(b==0.0)
{
throw std::runtime_error("不要传0");
}
return a/b;
};
int main ()
{
std::cout |