在C++中,可以使用lambda表达式来创建匿名函数。lambda表达式可以在需要函数对象的地方使用,例如作为函数参数、赋值给变量或者直接调用。
lambda表达式的基本语法如下:
捕捉列表 -> 返回类型 { 函数体 }
其中,捕捉列表用于捕获局部变量,参数列表用于定义函数参数,返回类型用于定义函数返回值类型,函数体用于定义函数逻辑。
下面是一个使用lambda表达式的例子:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 使用匿名函数作为sort函数的比较函数
std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
return a > b;
});
// 使用匿名函数打印排序后的结果
std::for_each(numbers.begin(), numbers.end(), [](int num) {
std::cout << num << " ";
});
return 0;
}
在上述代码中,我们使用lambda表达式作为std::sort()
函数的比较函数,按降序对numbers
进行排序。然后使用lambda表达式作为std::for_each()
函数的操作函数,打印排序后的结果。