Lambda表达式是C++11标准引入的一个匿名函数的概念,它可以用于定义一个函数,但不需要显式的指定函数名。在C++中,lambda表达式的语法形式为“capture->return_type{body}”。
其中,“capture”表示捕获当前上下文中的变量,可以为空;“parameters”表示传递给lambda函数的参数列表,可以为空;“return_type”表示返回值的类型,可以省略;“body”表示具体的函数实现。
下面是一个简单的示例,展示了如何使用lambda表达式:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums {3, 2, 1, 5, 4};
// lambda表达式,用于从小到大排序
std::sort(nums.begin(), nums.end(), [](int a, int b) {
return a < b;
});
// 输出排序结果
for (auto num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
在上面的例子中,我们使用了一个lambda表达式来指定排序函数的实现,使得对数组进行排序操作时更加简单。需要特别注意的是,lambda表达式实际上是一种函数对象,我们可以将它存储在变量中,或者作为其他函数的参数进行传递。