sort函數使用模板:
sort包含在頭文件algorithm中
sort(start,end,排序方法)
1.在沒有排序方法時是默認從小到大的排列,例
#include<iostream>
#include<algorithm>
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]<<endl;
sort(a,a+10);
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
下面來介紹一下那個排序方法也就是比較函數complare
1 #include<iostream>
2
3 #include<algorithm>
4
5 using namespace std;
6
7 bool complare(int a,int b)
8
9 {
10
11 return a>b;
12
13 }
14
15 int main()
16
17 {
18
19 int a[10]={9,6,3,8,5,2,7,4,1,0};
20
21 for(int i=0;i<10;i++)
22
23 cout<<a[i]<<endl;
24
25 sort(a,a+10,complare);//在這裡就不需要對complare函數傳入參數了,//這是規則
26
27 for(int i=0;i<10;i++)
28
29 cout<<a[i]<<endl;
30
31 return 0;
32
33 }
例三:
通過上面例一、二的方法雖然實現了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程序執行何種排序的原則的函數,c++標准庫強大的功能完全可以解決這種麻煩。
Sortt函數的第三個參數可以用這樣的語句告訴程序你所采用的排序原則
less<數據類型>()//從小到大排序
greater<數據類型>()//從大到小排序
結合本例子,這樣的就可以完成你想要的任何一種排序原則了
#include<iostream>
#include<algorithm>
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]<<endl;
sort(a,a+10,less<int>());
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
#include<iostream>
#include<algorithm>
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]<<endl;
sort(a,a+10,greater<int>());
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
例四:利用sort函數還可以實現對字符的排序,排序方法大同小異,下面就把程序范例展示一下
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char a[11]="asdfghjklk";
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
sort(a,a+10,greater<char>());
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}