简介:Lambda表达式是C++11引入的一种匿名函数对象,它使得在代码中定义简洁的函数操作更加方便。本文将介绍Lambda表达式的常见用法,包括基本语法、捕获列表、参数类型、返回类型以及在STL中的使用。
Lambda表达式在C++中是一种强大的工具,它允许你定义一个匿名的函数对象,这使得在需要简洁定义函数操作的地方非常有用。以下是Lambda表达式的常见用法:
1. 基本语法
Lambda表达式的语法如下:
[capture](parameters) -> return_type { body_of_lambda }
capture:捕获列表,用于指定如何捕获外部作用域中的变量。可以使用[=]或[&]来按值捕获或按引用捕获。parameters:参数列表,与普通函数一样定义参数。return_type:返回类型,可以省略(编译器可以推断),如果需要指定,则放在->后面。body_of_lambda:Lambda函数体。[=],按引用捕获使用[&]。还可以同时使用按值捕获和按引用捕获,如[=,&a]。(parameters)中。例如:4. 返回类型
auto add = [](int a, int b) -> int { return a + b; };
-> return_type中。例如:5. 在STL中的使用
auto add = [](int a, int b) -> int { return a + b; };
std::sort和Lambda表达式对一个整数数组进行排序:cpp
std::sort(arr.begin(), arr.end(), [](int a, int b) { return a < b; });6. 使用Lambda表达式的注意事项