std::sort自定义排序
时间: 2023-09-06 17:11:53 浏览: 102
可以使用`std::sort`的第三个参数来自定义排序规则。下面是一个示例代码,其中定义了一个比较函数`myCompare`,用于指定排序规则:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
struct Person {
std::string name;
int age;
Person(std::string name, int age) : name{name}, age{age} {}
};
bool myCompare(const Person& p1, const Person& p2) {
return p1.age > p2.age; // 按年龄从大到小排序
}
int main() {
std::vector<Person> people{{"Alice", 22}, {"Bob", 20}, {"Charlie", 25}, {"David", 18}};
std::sort(people.begin(), people.end(), myCompare);
for (const auto& p : people) {
std::cout << p.name << " " << p.age << std::endl;
}
return 0;
}
```
上述代码中,`myCompare`函数返回`true`表示第一个参数在前,`false`表示第二个参数在前。`std::sort`会根据这个比较函数的返回值来确定排序规则。在本例中,按年龄从大到小排序。
阅读全文