可以sort一个结构体吗
时间: 2023-11-08 22:43:29 浏览: 37
可以对结构体进行排序,但需要定义一个比较函数来指定排序规则。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
struct Person {
std::string name;
int age;
};
bool comparePerson(const Person& p1, const Person& p2) {
return p1.age < p2.age; // 按照年龄升序排序
}
int main() {
std::vector<Person> people = {
{"Alice", 25},
{"Bob", 30},
{"Charlie", 20}
};
std::sort(people.begin(), people.end(), comparePerson);
for (const auto& person : people) {
std::cout << person.name << " - " << person.age << std::endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个结构体 `Person`,包含了姓名和年龄两个成员变量。然后,我们定义了一个比较函数 `comparePerson`,用于指定按照年龄升序排序。最后,我们使用 `std::sort` 函数对 `people` 向量进行排序,传入比较函数作为第三个参数。输出结果将按照年龄升序排序的顺序打印出来。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.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)