头文件:#include <algorithm>
Sort函数使用模板:
Sort(start,end,排序方法) start:起始地址 end:终止地址(亦可传入迭代器起始终止)
sort函数没有第三个参数,默认实现的是从小到大的排序
例题:为成绩排序,定义两科成绩a,b,将成绩按照成绩a从大到小排列,如果成绩a相等,则相等成绩再按照b从大到小排列
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct
{
int a;
int b;
}A;
vector<A> num;
bool cmp(const A &m,const A &n)
{
if(m.a!=n.a)
{
return m.a>n.a;
}else return m.b>n.b;
}
int main()
{
int i,n;
A temp;
cin>>n;
for(i =0; i < n; i++)
{
cin>>temp.a>>temp.b;
num.push_back(temp);
}
sort(num.begin(),num.end(),cmp);
for(i=0;i<n;i++)
{
cout<<num[i].a<<" "<<num[i].b<<endl;
}
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct
{
int a;
int b;
}A;
vector<A> num;
bool cmp(const A &m,const A &n)
{
if(m.a!=n.a)
{
return m.a>n.a;
}else return m.b>n.b;
}
int main()
{
int i,n;
A temp;
cin>>n;
for(i =0; i < n; i++)
{
cin>>temp.a>>temp.b;
num.push_back(temp);
}
sort(num.begin(),num.end(),cmp);
for(i=0;i<n;i++)
{
cout<<num[i].a<<" "<<num[i].b<<endl;
}
return 0;
}