如何用sort对vector <类>进行排序
时间: 2024-01-22 08:18:55 浏览: 93
自定义的Troop<T>泛型类( c++, java和c#)的实现代码
在对 vector <类> 进行排序时,需要定义一个比较函数来指定排序规则。比较函数可以是一个全局函数或一个类的静态成员函数。下面是一个示例:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Person {
public:
int age;
string name;
Person(int _age, string _name) {
age = _age;
name = _name;
}
};
bool compareAge(Person p1, Person p2) {
return p1.age < p2.age;
}
int main() {
vector<Person> persons;
persons.push_back(Person(20, "Tom"));
persons.push_back(Person(18, "Jerry"));
persons.push_back(Person(22, "Alice"));
sort(persons.begin(), persons.end(), compareAge);
for (int i = 0; i < persons.size(); i++) {
cout << persons[i].name << " " << persons[i].age << endl;
}
return 0;
}
```
在上面的代码中,类 Person 有两个成员变量 age 和 name,我们定义了比较函数 compareAge 来按年龄排序。在主函数中,我们将三个 Person 对象添加到 vector 中,然后使用 sort 函数对 vector 进行排序,并使用循环打印结果。
阅读全文