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;
}