c++ 對vector和deque進行逆序排序問題


1.vector

vector<int> data1;

2.deque 

deque <int> data2;

 

逆序排序方式:

方式1.使用reverse函數   (內置數據類型可以使用這種)

sort(data1.begin(),data1.end());    // vector先升序

sort(data2.begin(),data2.end());    //deque  先升序

reverse(data1.begin(),data1.end());   // vector再進行反轉

reverse(data2.begin(),data2.end());   // deque 再進行反轉  

方式2.對於自定義數據類型,我們可以重載 < 符號,將判斷方式換成 > ,哈哈哈``````回頭試試

 

方式3.使用rbegin()和rend()函數,   rbegin()的返回值指向最后一個元素,rend()的返回值指向第一個元素的前面的一個

sort(data1.begin(),data1.end());    // vector先升序

sort(data1.rbegin(), data1.rend());    // vector   可實現降序

sort(data2.begin(),data.end());    //deque先升序

sort(data2.rbegin(), data2.rend());    // deque可實現降序

方式4:使用設計函數對象作為sort的第三個參數。

函數對象:

class MyCompare
{
public :
bool operator ()(int a,int b)
{
if (a > b) return true;
return false;
}
};

// 將參數傳入

sort(data.begin(), data.end(), MyCompare());

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM