c++ sort函式使用總結
阿新 • • 發佈:2018-11-22
需要標頭檔案 algorithm
語法描述:sort(begin,end,cmp),cmp引數可以沒有,如果沒有預設非降序排序。
以int為例的基本資料型別的sort使用:
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int main() { int a[5]={1,3,4,2,5}; sort(a,a+5); for(int i=0;i<5;i++) cout<<a[i]<<' '; return 0; }
因為沒有cmp引數,預設為非降序排序,結果為:
1 2 3 4 5
若設計為非升序排序,則cmp函式的編寫:
bool cmp(int a,int b)
{
return a>b;
}
其實對於這麼簡單的任務(型別支援“<”、“>”等比較運算子),完全沒必要自己寫一個類出來。標準庫裡已經有現成的了,就在functional裡,include進來就行了。functional提供了一堆基於模板的比較函式物件。它們是(看名字就知道意思了):equal_to、not_equal_to、greater、greater_equal、less、less_equal。對於這個問題來說,greater和less就足夠了,直接拿過來用:
升序:sort(begin,end,less());
降序:sort(begin,end,greater()).
int main ( ) { int a[20]={2,4,1,23,5,76,0,43,24,65},i; for(i=0;i<20;i++) cout<<a[i]<<endl; sort(a,a+20,greater<int>()); for(i=0;i<20;i++) cout<<a[i]<<endl; return 0; }
- 引用資料型別string的使用
- 一個字串間的個字元排序:
- 使用迭代器可以完成順序排序
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
string str("hello world");
sort(str.begin(),str.end());
cout<<str;
return 0;
}
結果:空格dehllloorw
轉載自:https://www.cnblogs.com/TX980502/p/8528840.html