对象数组元素的大小排序
时间: 2023-08-24 08:31:51 浏览: 48
可以使用自定义比较函数来实现对象数组元素的大小排序。比如,假设有一个存储人员信息的数组,每个人员信息包含姓名和年龄两个属性,我们想按照年龄从小到大的顺序对数组进行排序,可以使用如下的代码:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct Person {
string name;
int age;
};
bool cmp(const Person& a, const Person& b) {
return a.age < b.age;
}
int main() {
Person arr[] = {{"Tom", 20}, {"Jack", 18}, {"Mary", 22}, {"John", 19}};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++) {
cout << arr[i].name << " " << arr[i].age << endl;
}
return 0;
}
```
这段代码中,我们定义了一个结构体 `Person`,并定义了一个自定义比较函数 `cmp`,该函数按照 `Person` 结构体的 `age` 属性进行比较。然后,我们使用 `sort` 函数对数组进行排序,最后按照排序结果输出数组中的每个元素。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)