sort函数简单调用方法

时间:2023-11-29 21:30:44

向量调用sort函数排序,一般有三个参数,即为sort(v.begin(),v.end(),cmp),第三个传入的是比较函数的地址(函数名),决定你比较的性质,运用灵活

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
class Myclass{
public:
Myclass(int i, string s){ num = i, name = s; }
bool operator<(Myclass&a){
return num < a.num; //小于运算符重载,按学号排序
}
friend bool Name_Cmp(Myclass &a,Myclass&b){      //按姓名排序
return a.name < b.name;
}
void Display(){
cout << "(" << num << "," << name << ")" << endl;
}
private:
int num;
string name;
};
int main(){
vector<Myclass> student;
int i,a, n;
cin >> n;
string s;
for (i = 0; i < n; i++){
cin >> a >> s;
Myclass M(a, s);
student.push_back(M);
}
cout << "Sort by num:" << endl;
sort(student.begin(), student.end());//第三个参数默认为<,前面已经重载
for (i = 0; i < n; i++)
student[i].Display();
cout << "after Sort by name:" << endl;
sort(student.begin(), student.end(), Name_Cmp);
for (i = 0; i < n; i++)
student[i].Display();
return 0;
}

相关文章