C++自己的lambda表达式
-
要找到存放类对象的向量中某一成员数据最大值的对象,您可以使用 `std::max_element` 算法,结合 lambda 表达式来实现。
假设我们有一个存放 `Person` 类对象的向量,每个对象都有一个 `age` 成员变量,我们要找到 `age` 成员变量最大值的那个 `Person` 对象。示例代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>class Person {
public:
int age;
std::string name;Person(int _age, std::string _name) : age(_age), name(_name) {}
};int main() {
std::vector<Person> people = {
Person(20, "Alice"),
Person(25, "Bob"),
Person(18, "Charlie"),
Person(30, "David"),
Person(22, "Eva")
};auto max_it = std::max_element(people.begin(), people.end(),
[](const Person& p1, const Person& p2) {
return p1.age < p2.age;
});std::cout << "The oldest person is: " << max_it->name << std::endl;
return 0;
}
```这将输出 `people` 向量中年龄最大的那个人的名字,即:
```
The oldest person is: David
``` -
![]()
-
![]()
![]()
- lambda表达式的类型是什么?
- 编译器自己推断,不知道
![]()
- 编译器自己推断,不知道




浙公网安备 33010602011771号