STL中的sort
定义
template <class RandomAccessIterator> void sort ( RandomAccessIterator first, RandomAccessIterator last ); template <class RandomAccessIterator, class Compare> void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
如果要排序的元素具有<运算符
可用sort(num,num+n)来排序
#include <iostream>
#include <algorithm>
using namespace std;
int num[]={2,5,3,1,6,8};
int main()
{
int n=6;
sort(num,num+n);
for(int i=0;i<n;i++) cout<<num[i]<<" ";
cout<<endl;
return 0;
}
如果没有需要为排序元素手动添加<运算符
然后sort(num,num+n)
或者写一个比较函数
像这样,把从小到大排序变为从大到小
#include <iostream>
#include <algorithm>
using namespace std;
int num[]={2,5,3,1,6,8};
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n=6;
sort(num,num+n,cmp);
for(int i=0;i<n;i++) cout<<num[i]<<" ";
cout<<endl;
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
int pri[]={2,3,1,5,4,6};
struct Num
{
int dat;
};
bool cmp(const Num &a,const Num &b)
{
return a.dat<b.dat;
}
Num num[]={2,5,3,1,6,8};
int main()
{
int n=6;
sort(num,num+n,cmp);
for(int i=0;i<n;i++) cout<<num[i].dat<<" ";
cout<<endl;
return 0;
}