注意:如果就是一个排序就不用 用 if 用一个会报错两个变量排序的的话再用if else 一个就会报错
#include<bits/stdc++.h>
using namespace std;
#define xiao chu \
ios::sync_with_stdio(false) \
cin.tie(0),cout.tie(0);
typedef long long ll;
const int N=1e5+10;
int n,ne[N],idx,dp[N],k;
struct node
{
int a;
int b;
bool operator<(const node&A)const{//A因为在后面按这个来(bool operoter<(const node &A)const {}里边是排序规则;
if(a!=A.a)
return a>A.a;//在a!=A.a的情况下前面比后面大所以就是按达大到小
else return b>A.b;//不相等的话看bb在前边前面的大
}
}s[N];
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
int x,y;
cin>>x>>y;
s[i]={x,y};
//结构体直接用一个大括号输入进去就可以了里边是包含的数
}
sort(s,s+n);//别忘了用sort排序一下
for(int i=0;i<n;i++)
{
cout<<s[i].a<<" "<<s[i].b<<endl;
}
}
结构体的特殊输入方式就是直接{}放置元素中间用,隔开
特殊排序方式就是:运用bool operoter(const node&A)const{}
容器别忘了用sort();数组用法
#include<bits/stdc++.h>
using namespace std;
#define xiao chu \
ios::sync_with_stdio(false) \
cin.tie(0),cout.tie(0);
typedef long long ll;
const int N=1e5+10;
int n,m,a[N],ne[N],idx,dp[N],k;
bool cmp(int x,int y)
{
return abs(x)>abs(y);//return 规则abs就是绝对值的意思
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
int x;
cin>>a[i];
}
sort(a,a+n,greater<int>());//第一个最大了降序排序
sort(a,a+n,less<int>());//升序排序最后第一个是最小的别忘了less<int>()括号
// sort(a,a+n,cmp);//按照规定的书序排序;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
}
容器用法:
#include<bits/stdc++.h>
using namespace std;
#define xiao chu \
ios::sync_with_stdio(false) \
cin.tie(0),cout.tie(0);
typedef long long ll;
const int N=1e5+10;
int n,m,a[N],ne[N],idx,dp[N],k;
bool cmp(int x,int y)
{
return x<y;
}
int main()
{
vector<int>q;
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
q.push_back(x);
}
// sort(q.begin(),q.end(),greater<int >());//第一个是p.begin(),再是最后一个。可以继续用greater<int >();
sort(q.begin(),q.end(),cmp);//容器还可以继续使用bool cmp
for(int i=0;i<n;i++)
{
cout<<q[i]<<endl;
}
}