<pre name="code" class="cpp">sort的使用
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;//使用std的命名空间
(如果不用命名空间的的话,当用sort,很多的方法的使用都要在前面加std::)
int main()
{
int n,a[1001];
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
for(int i=0;i<n;i++)
printf("%d%c",a[i],i==n-1?’\n’:’ ’);
int m=unique(a,a+n)-a;//去重
for(int i=0;i<m;i++)
{
printf(“%d%c”,a[i],i==n-1?’\n’:’ ’);
}
}
return 0;
}
改变sort的排序规则
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int n,a[1001];
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp);
int m=unique(a,a+n)-a;//去重
for(int i=0;i<m;i++)
printf("%d ",a[i]);
printf("\n");
}
return 0;
}
结构体sort排序加重载操作符
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;
struct node
{
int a,b;
bool operator <(const node &s)const//重载操作符
{
if(a==s.a)
return b<s.b;
return a<s.a;
}
};
struct node a[101];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
scanf("%d%d",&a[i].a,&a[i].b);
sort(a,a+n);
for(int i=0;i<n;i++)
printf("%d %d\n",a[i].a,a[i].b);
}
return 0;
}
结构体sort排序普通方法
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;
struct node
{
int a,b;
};
struct node a[101];
int cmp(struct node a,struct node b)
{
if(a.a==b.a)
return a.b<b.b;
return a.a<b.a;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
scanf("%d%d",&a[i].a,&a[i].b);
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
printf("%d %d\n",a[i].a,a[i].b);
}
return 0;
}
STL模板库sort
最新推荐文章于 2022-02-11 21:27:18 发布