建立vector数组,且其中的数据类型是自定义对象,如何去按想要的数据去排序
时间: 2024-02-16 08:59:44 浏览: 73
如果想要按照自定义对象的某个属性进行排序,可以使用STL中的sort()函数结合自定义比较函数来实现。自定义比较函数需要接收两个参数,表示待比较的两个自定义对象,函数需要返回一个bool值,表示它们的大小关系。
下面是一个示例代码,演示如何对存储自定义对象的vector数组按照对象的某个属性进行排序:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 自定义对象
class Person {
public:
string name;
int age;
Person(string name, int age) {
this->name = name;
this->age = age;
}
};
// 自定义比较函数,按照年龄从小到大排序
bool cmp(const Person& p1, const Person& p2) {
return p1.age < p2.age;
}
int main() {
// 建立一个存储Person对象的vector数组
vector<Person> v = {Person("Tom", 20), Person("Jerry", 18), Person("Alice", 22)};
// 使用sort()函数结合自定义比较函数对vector数组进行排序
sort(v.begin(), v.end(), cmp);
// 输出排序后的结果
for (int i = 0; i < v.size(); i++) {
cout << v[i].name << " " << v[i].age << endl;
}
return 0;
}
```
该代码会输出:
```
Jerry 18
Tom 20
Alice 22
```
表示Person对象已经按照年龄从小到大的顺序排好序了。
阅读全文