想起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort
所以自己總結了一下,首先看sort函式見下表:
函式名功能描述
sort
對給定區間所有元素進行排序
stable_sort
對給定區間所有元素進行穩定排序
partial_sort
對給定區間所有元素部分排序
partial_sort_copy
對給定區間複製並排序
nth_element
找出給定區間的某個位置對應的元素
is_sorted
判斷乙個區間是否已經排好序
partition
使得符合某個條件的元素放在前面
stable_partition
相對穩定的使得符合某個條件的元素放在前面
要使用此函式只需用#include sort即可使用,語法描述為:
sort(begin,end),表示乙個範圍,例如:
int _tmain(int argc, _tchar* argv)
,i;for(i=0;i<20;i++)
cout<
輸出結果將是把陣列a按公升序排序,說到這裡可能就有人會問怎麼樣用它降序排列呢?這就是下乙個討論的內容.
一種是自己編寫乙個比較函式來實現,接著呼叫三個引數的sort:sort(begin,end,compare)就成了。對於list容器,這個方法也適用,把compare作為sort的引數就可以了,即:sort(compare).
1)自己編寫compare函式:
bool compare(int a,int b)
int _tmain(int argc, _tchar* argv)
,i;for(i=0;i<20;i++)
cout<3)其實對於這麼簡單的任務(型別支援「<」、「>」等比較運算子),完全沒必要自己寫乙個類出來。標準庫里已經有現成的了,就在functional裡,include進來就行了。functional提供了一堆基於模板的比較函式物件。它們是(看名字就知道意思了):equal_to、not_equal_to、greater、greater_equal、less、less_equal。對於這個問題來說,greater和less就足夠了,直接拿過來用:
int _tmain(int argc, _tchar* argv)
,i;for(i=0;i<20;i++)
cout<());
for(i=0;i<20;i++)
cout } 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給定區間所有元素部分排序 partial sort copy 對給定區間複製並排序 nth element 找出給... 需要標頭檔案 語法描述 sort begin,end,cmp cmp引數可以沒有,如果沒有預設公升序排序。sort函式使用例項 include include includeusing namespace std int main sort a,a 5 for int i 0 i 5 i cout ... include include 因為用了sort 函式 include 因為用了greater using namespace std void main int i int len sizeof a sizeof int 這裡切記要除以sizeof int sort a a len,greater...sort排序函式
sort 排序函式
sort 排序函式