sort排序是將數組進行升序或降序排序,比冒泡排序快,sort默認是升序排序,並且使用時需加入頭文件algorithm。
例如對一個數組升序排序:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[5]={23,56,89,66,78},i;
sort(a,a+5);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
輸出:
即sort(數組名,數組名+總元素個數);
如果需要降序排序,則需要加上一個比較函數,如:
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(const int a,const int b)
{
return(a>b);//'>'爲降序排序,'<'爲升序
}
int main()
{
int a[5]={23,56,89,66,78},i;
sort(a,a+5,cmp);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
使用sort對結構體排序:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
typedef struct
{
string name;
int num;
int score;
}Student;
bool cmp(const Student a,const Student b)
{
return(a.score<b.score);//對成績進行比較
}
int main()
{
Student s[10];
int i;
for(i=0;i<5;i++)
cin>>s[i].name>>s[i].num>>s[i].score;
sort(s,s+5,cmp);//對結構體進行排序
for(i=0;i<5;i++)
cout<<s[i].name<<" "<<s[i].num<<" "<<s[i].score<<endl;
return 0;
}
輸入:
輸出:
總的來說,定義一個函數對結構體中元素進行比較,在將該函數放入sort中即可。