免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

【C++】sort函數詳解-創新互聯

1、sort()函數是C++標準庫中的排序函數,頭文件為algorithm
2、sort()函數時間復雜度:
我們最熟悉的冒泡排序和選擇排序的時間復雜度過高,不能滿足我們寫題的需要。sort函數的排序方法類似于快排方法,時間復雜度為n*log2(n)
3、sort()函數的參數
sort(起始地址,結束地址,比較器);
其中比較器可以省略,默認升序

創新互聯建站專注于網站建設,為客戶提供成都網站設計、成都網站制作、網頁設計開發服務,多年建網站服務經驗,各類網站都可以開發,成都品牌網站建設,公司官網,公司展示網站,網站設計,建網站費用,建網站多少錢,價格優惠,收費合理。
int arr[10]={5,3,6,0,2,8,2,6,9,11};
sort(arr,arr+10);

帶比較器的寫法(比較器可以根據自身的需要來寫,當返回true時):

//首先我們要寫一個bool類型的方法,用來返回參數的比較結果
//當比較器返回true時,第一個參數放在前面,第二個參數放在后面,即位置不變
//當比較器返回false時,為兩元素交換位置
//這里要注意對參數相等時的處理
//因為可能會在兩者相等的時候交換位置,在一些特定的環境下會導致題解出錯
//比較器最好寫成static函數
//比較器的值可以使用引用類型,節省空間開銷
static bool cmp1(int &lhs,int &rhs)//升序
{return lhsreturn lhs>rhs;
}
sort(arr,arr+10,cmp1);//升序
sort(arr,arr+10,cmp1);//降序

4、對vector排序

vectorvec={5,3,6,0,2,8,2,6,9,11};
//比較器同對數組排序
sort(vec.begin(),vec.end(),cmp1);
sort(vec.begin(),vec.end(),cmp2);

5、對map進行排序
這里要注意,map函數有一個按key值進行的自動排序功能(降序)

typedef pairPAIR;
//比較器
//按value值進行降序排序,value值相等key小的在前
static bool cmp_value(const PAIR& lhs,const PAIR& rhs)
{if(lhs.second == rhs.second)
	{return lhs.keyrhs.second;
}
sort(m.begin(),m,end(),cmp_value);

6、不使用手寫的cmp函數

sortt函數的第三個參數可以用這樣的語句告訴程序你所采用的排序原則:
less<數據類型>()//從小到大排序
greater<數據類型>()//從大到小排序

sort(arr,arr+10,less());

7、lamdba形式的比較器

//lamdba形式
[](int &a,int &b){return areturn a

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

本文標題:【C++】sort函數詳解-創新互聯
URL鏈接:http://m.newbst.com/article12/iojdc.html

成都網站建設公司_創新互聯,為您提供微信小程序域名注冊品牌網站建設網站維護網站設計公司Google

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯