蓝桥杯

文章目录

前言

C++中有很多好用的函数,可以在蓝桥杯中省出很多的时间并且大大提高你的获奖率。

一、sort排序函数

Sort函数有三个参数:

(1)第一个是要排序的数组的起始地址。

(2)第二个是结束的地址(最后一位要排序的地址)

(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。

Sort(start,end,排序方法)

1.从小到大

#include<bits/stdc++.h>
using namespace std;
int main()
 
{
 
 int a[10]={9,6,3,8,5,2,7,4,1,0};
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 cout<<endl; 
sort(a,a+10);//a是数组名也代表数组首地址  a+10是第11个元素的地址
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 
 return 0;
 
}

2.从大到小

需要加入一个比较函数 complare()

#include<bits/stdc++.h>
using namespace std;

bool complare(int a,int b)
{
 return a>b;
}
int main()
 
{
 
 int a[10]={9,6,3,8,5,2,7,4,1,0};
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 cout<<endl; 
sort(a,a+10,complare);
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 
 return 0;
 
}

二、c++标准库

虽然通过以上方法进行了排序,但是还是有点麻烦,c++强大的库不能浪费。
从小到大:
less<数据类型>()
从大到小:
greater<数据类型>()

1.less<数据类型>()

#include<bits/stdc++.h>
using namespace std;
int main()
 
{
 
 int a[10]={9,6,3,8,5,2,7,4,1,0};
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 cout<<endl; 
sort(a,a+10,less<int>());//注意格式后面有个括号
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 
 return 0;
 
}

2.greater<数据类型>()

#include<bits/stdc++.h>
using namespace std;

int main()
 
{
 
 int a[10]={9,6,3,8,5,2,7,4,1,0};
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 cout<<endl; 
sort(a,a+10,greater<int>());
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 
 return 0;
 
}

三、字符排序

同样可以使用sort函数

#include<iostream>
 
#include<algorithm>
 
using namespace std;
 
int main()
 
{
 
 char a[11]="ajsalkdj";
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 cout<<endl;
 sort(a,a+10,greater<char>());
 
 for(int i=0;i<10;i++)
 
 cout<<a[i];
 
 return 0;
 
}

总结

sort函数非常好用,但是要记得两个参数啊(less和greater)