C++自己的lambda表达式

  1. 要找到存放类对象的向量中某一成员数据最大值的对象,您可以使用 `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
    ```

  2.  

  3.  

     

  4. lambda表达式的类型是什么?
    1.   编译器自己推断,不知道

       

posted @ 2023-05-24 21:57  SunShine789  阅读(54)  评论(0)    收藏  举报