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