这个问题之前研究了很久,但是由于心里对其的抵触一直不愿意记住,这次对其做详实的总结,并且希望再也不会忘记了
在网上看过了之后,发现我很不想用qsort也不想再记住qsort那么就来说一下sort吧
sort是c++引入的函数
我们要#include<algorithm> 同时 using namespace std来把它包含在内
然后sort的用法则是
sort(begin, end, cmp)
这个cmp可以写也可以不写
最基础的用法
有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。
对向量v排序也差不多,sort(v.begin(),v.end());
比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数cmp。
bool cmp(int a,int b)
{
return a>b;
}
sort(a,a+100,cmp);
对于结构体来说,有两种实现方案,我就不记麻烦的那种了
来个简单的并且要记住
struct node
{
int x, y;
bool operator < (const node & n)
{
if (x!=n.x) return x<n.x;
else return y<n.y;
}
}nn[100];
sort(nn, nn+100);
即可如果<号对应的比较是<号,那么就是升序排列,否则就是降序排列