函数调用是参数是lambda表达式的举例与分析
时间: 2024-11-15 09:31:33 浏览: 25
在 C++ 中,Lambda 表达式提供了一种简洁的方式来定义匿名函数,它们常用于函数对象(function objects)或回调函数。当作为参数传递给其他函数时,它们可以在运行时动态地执行特定的操作。
例如,考虑一个排序算法,我们可能希望使用自定义的比较规则来决定元素的顺序。这时,我们可以创建一个接受两个参数并返回 bool 的 lambda 表达式作为 `std::sort` 的第三个参数:
```cpp
#include <algorithm>
#include <iostream>
#include <vector>
// 假设有一个员工列表,我们想按工资降序排列
std::vector<Employee> employees;
// 定义一个 lambda 表达式作为比较器
auto compareBySalary = [](const Employee& e1, const Employee& e2) {
return e1.salary > e2.salary;
};
int main() {
// 使用 lambda 表达式对员工列表进行排序
std::sort(employees.begin(), employees.end(), compareBySalary);
for (const auto& employee : employees) {
std::cout << "Name: " << employee.name << ", Salary: " << employee.salary << "\n";
}
return 0;
}
阅读全文