小编Kar*_*rma的帖子

为什么lambda函数用于stl函数,例如C++中的sort(),max_element()函数将两个参数作为输入?

我试图理解在sort()运算符中使用lambda函数.有一个存储类型对象的向量person; sort()函数用于迭代向量person并基于类成员对其进行排序id.

我不明白为什么sort函数中使用的lambda函数需要两个输入,即.p1p2?,为什么不输入一个对象p1?我总是认为stl函数如sort()max_element()将迭代器返回到一个元素.

class Person
    {
      private:
        string firstName;
        string lastName;
        int id;

      public:
        Person(const string& fn, const string& ln, int i)
             : firstName(fn), lastName(ln), id(i) { }

        const string& getFirstName() const { return firstName; }
        const string& getLastName() const { return lastName; }
        int getID() const { return id; }
    };

main(){
vector<Person> people;
people.push_back(Person("Davor", "Loayza", 62341));
people.push_back(Person("Eva", "Lopez", 12345)); …
Run Code Online (Sandbox Code Playgroud)

c++ stl vector object

2
推荐指数
1
解决办法
92
查看次数

标签 统计

c++ ×1

object ×1

stl ×1

vector ×1