利用sort对结构体进行排序
我定义了一个学生类型的结构体来演示sort排序对结构体排序的用法
具体用法看代码
#include<iostream>
#include<string>
#include<algorithm>//sort函数包含的头文件
using namespace std;
//定义一个学生类型的结构体
typedef struct student
{
string name; //学生姓名
int achievement; //学生成绩
} student;
//这是函数是sort函数的第三个参数
//如果希望升序排序,就是"<",降序排列就是">"号
//如果希望用其他的参数作为排序条件,只需要把相应的条件改一下(如果改成name),这样结构体就以name作为排序标准
bool comparison(student a,student b){
return a.achievement<b.achievement;
}
//用来显示学生信息的函数
void show(student *stu,int n)
{
for(int i = 0; i < n; i++)
{
cout<<"姓名:"<<stu[i].name<<'\t'<<"成绩:"<<stu[i].achievement<<endl;
}
}
int main()
{
student stu[] = { {"张三",99},{"李四",87},{"王二",100} ,{"麻子",60}};
cout<<"排序前:"<<endl;
show(stu,4);
sort(stu,stu+4,comparison);
cout<<"排序后:"<<endl;
show(stu,4);
return 0;
}