如何把c++对象数组按数据排序
时间: 2023-08-11 09:33:53 浏览: 119
c++数据排序
可以使用STL中的sort函数来对C++对象数组进行排序。sort函数的第一个参数是要排序的数组的起始地址,第二个参数是数组的结束地址,第三个参数是一个函数指针,用于指定排序的方式。
例如,如果要对一个包含Person对象的数组按照Person的年龄属性进行排序,可以定义一个比较函数compare_age,然后在sort函数中使用它来进行排序。
示例代码如下:
```c++
#include <algorithm>
#include <iostream>
class Person {
public:
Person(int age) : m_age(age) {}
int age() const { return m_age; }
private:
int m_age;
};
bool compare_age(const Person& p1, const Person& p2) {
return p1.age() < p2.age();
}
int main() {
Person people[] = { Person(20), Person(30), Person(10), Person(40) };
const size_t num_people = sizeof(people) / sizeof(people[0]);
std::sort(people, people + num_people, compare_age);
for (size_t i = 0; i < num_people; ++i) {
std::cout << people[i].age() << std::endl;
}
return 0;
}
```
这段代码会输出:
```
10
20
30
40
```
说明Person对象数组已经按照年龄属性进行了排序。
阅读全文