sort多关键字函数
sort多关键字函数指的是在排序时,我们可以同时考虑多个关键字来进行排序。比如对于一个由多个人的信息组成的列表,我们可能需要先按照年龄排序,如果年龄相同再按照姓名排序,如果姓名也相同再按照身高排序。
为了实现多关键字排序,我们可以使用STL库中的sort函数,并自定义一个比较函数。比较函数需要接收两个参数,然后根据我们设定的排序规则返回一个布尔值,代表这两个参数哪一个应该排在前面。
以下是一个对于多关键字排序的示例代码:
```
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct person {
string name;
int age;
int height;
sort函数 js };
bool cmp(const person& a, const person& b){
if(a.age != b.age) return a.age < b.age;
else if(a.name != b.name) return a.name < b.name;
else return a.height < b.height;
}
int main(){
vector<person> v = {
{'Tom', 23, 174},
{'Jack', 25, 170},
{'Alice', 23, 165},
{'Bob', 23, 180},
{'Tony', 25, 180}
};
sort(v.begin(), v.end(), cmp);
for(auto p : v){
cout << p.name << ' ' << p.age << ' ' << p.height << endl;
}
return 0;
}
```
在这个示例代码中,我们定义了一个person结构体,并用cmp函数作为比较函数来对vector<person>进行排序。在cmp函数中,我们先按照年龄升序排列,如果年龄相同再按照姓名升序排列,如果姓名也相同再按照身高升序排列。
运行上述代码,输出结果为:
```
Alice 23 165
Bob 23 180
Tom 23 174
Jack 25 170
Tony 25 180
```
可以看出,排序后的结果按照我们设定的多个关键字的顺序排列。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论