stl中sort函式用法簡介
sort 函式,可以直接對陣列排序,複雜度為 n*log2(n)。
使用這個函式,需要包含標頭檔案 #include 。
這個函式可以傳兩個引數或三個引數。第乙個引數是要排序的區間首位址,第二個引數是區間尾位址的下一位址,排序的區間是[a,b)。例:對陣列 t 的第 0 到 len-1 的元素排序,就寫 sort(t,t+len)。
對向量 v 排序也差不多, sort(v.begin(),v.end());
排序的資料型別不侷限於整數,只要是定義了小於運算的型別都可以,比如字串類 string 。
如果是沒有定義小於運算的資料型別,或者想改變排序的順序,就要用到第三引數----比較函式。比較函式是乙個自己定義的函式,返回值是 bool 型,它規定了什麼樣的關係才是「小於」。想把剛才的整數陣列按降序排列,可以先定義乙個比較函式 cmp
bool cmp(int a,int b)
排序的時候就寫 sort(a,a+len,cmp)。
假設自己定義了乙個結構體 node
struct node
有乙個 node 型別的陣列 node arr[100] ,想對它進行排序:先按 a 值公升序排列,如果 a 值相同,再按 b 值降序排列,如果 b 還相同,就按 c 降序排列。就可以寫這樣乙個比較函式:
bool cmp(node x,node y)
排序時寫 sort(arr,a+100,cmp)。
STL中sort函式用法簡介
做 acm題的時候,排序是一種經常要用到的操作。如果每次都自己寫個冒泡之類的 o n 2 排序,不但程式容易超時,而且浪費寶貴的比賽時間,還很有可能寫錯。stl裡面有個 sort函式,可以直接對陣列排序,複雜度為 n log2 n 使用這個函式,需要包含標頭檔案。這個函式可以傳兩個引數或三個引數。第...
sort函式用法
sort函式的用法 做acm題的時候,排序是一種經常要用到的操作。如果每次都自己寫個冒泡之類的o n 2 排序,不但程式容易超時,而且浪費寶貴的比賽時間,還很有可能寫錯。stl裡面有個sort函式,可以直接對陣列排序,複雜度為n log2 n 使用這個函式,需要包含標頭檔案。這個函式可以傳兩個引數或...
sort函式用法
標頭檔案 include using namespace std 1.預設的sort函式是按公升序排序。sort a,a n 兩個引數分別為待排序陣列的首位址和尾位址 2.可以自己寫乙個cmp函式,按特定意圖進行排序。例如 1 對陣列a降序排序 int cmp const int a,const i...