C++中的sort

网友投稿 834 2022-11-28

C++中的sort

C++中的sort

原型: void sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)

__first:排序区间的起始地址__last:排序区间的末尾地址__comp:排序方法

以上排序区间依然是左闭右开

两个参数时,默认升序

vector v = {3,1,4,6,0,9};sort(v.begin(), v.end());//升序int a[6] = {3,1,4,6,0,9};sort(a, a+6);//升序

自定义排序方法

1、升序

bool cmp(const int a, const int b){ return a < b;}int main(){ vector v = {3,1,4,6,0,9}; sort(v.begin(), v.end(), cmp); return 0;}

2、降序

bool cmp(const int a, const int b){ return a > b;}int main(){ vector v = {3,1,4,6,0,9}; sort(v.begin(), v.end(), cmp); return 0;}

若排序的数据类型支持“<”、“>”等比较运算符,则可以使用STL中提供的函数

升序:sort(begin, end, less < data-type >());降序:sort(begin, end, greater< data-type >());

上述的begin,end表示地址,不是索引

v = {3,1,4,6,0,9}; sort(v.begin(), v.end(), less());//升序 sort(v.begin(), v.end(), greater());//降序

结构体排序

#include#include#includeusing namespace std;struct Person{ float height; float weight; Person(float h, float w){ height = h; weight = w; }};//身高不同按照身高降序,身高相同按照体重降序bool cmp(Person p1, Person p2){ if(p1.height != p2.height){ return p1.height > p2.height; }else{ return p1.weight > p2.weight; }}int main(){ vector persons = {Person(160, 100), Person(170, 130), Person(170, 120), Person(180, 100)}; sort(persons.begin(), persons.end(), cmp); for(auto p : persons){ cout<

运行结果:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C++中的数组初始化问题
下一篇:战国七雄中最强大的国家(除秦外)——赵国_我是亲民_新浪博客
相关文章

 发表评论

暂时没有评论,来抢沙发吧~