C++排序函数中cmp()比较函数详解
来源:互联网 发布:java算法数据结构 编辑:程序博客网 时间:2024/06/07 22:35
- 整型数据比较
bool cmp(int a,int b){ return a < b;}int a[10]; sort(a,a+10,cmp);
- 实型数据比较
bool cmp(float a,float b){ return a < b;}int a[10]; sort(a,a+10,cmp);
- 结构体类型比较
题目:有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。
题目链接( 九度OJ的):http://ac.jobdu.com/problem.php?pid=1061
核心代码:
struct student{ int grade; char name[101]; int age;}stu[1001];bool cmp(student a,student b){ int t = strcmp(a.name,b.name); if(a.grade != b.grade) return a.grade < b.grade; else if(t != 0) return t < 0; else return a.age < b.age;}sort(stu,stu+n,cmp);
关于cmp函数参数中的&符号(转)
关于sort函数中的cmp函数有着不同的写法,以刚刚的整形元素比较为例
还有人是这么写的:
bool cmp(const int &a, const int &b){ return a>b; } int a[10]; sort(a,a+10,cmp);
思考:int 和const int&有什么区别呢?
原来:作为函数参数:int这种写法是值传递,const int&则是引用传递。
“值传递”——由于函数将自动产生临时变量用于复制该参数,效率较低。
“引用传递”仅借用一下参数的别名而已,不需要产生临时对象。效率较高。
tips:“引用传递”有可能改变参数,const修饰可以解决这个问题。
查看更多:http://blog.sina.com.cn/s/blog_76e067cf01019q5r.html
补充知识:C中qsort中的cmp()与sort的cmp()对比(以int为例)
阅读全文
0 0
- C++排序函数中cmp()比较函数详解
- 浅谈C/C++排序函数中cmp()比较函数的写法(qsort sort函数)
- 浅谈C/C++排序函数中cmp()比较函数的写法
- 浅谈C/C++排序函数中cmp()比较函数的写法
- 浅谈C/C++排序函数中cmp()比较函数的写法
- 排序函数中比较函数cmp的理解
- 比较函数cmp()
- [c/c++]qsort中cmp函数写法
- python cmp函数详解
- c++ 中 sort 与 c 的去sort cmp 比较函数 书写区别,待总结
- C Tips: 比较函数 int(*cmp)(const void *, const void *)
- python中cmp内置函数的比较原理
- 有关排序函数cmp写法
- 排序函数中的函数参数cmp
- qsort()中cmp函数写法
- cmp函数
- 关于string 比较和cmp函数
- 几种极角排序的cmp函数摘录
- 关于VS2015 inet_ntoa(),inet_addr()不能使用
- 学习使用Docker、Docker-Compose和Rancher搭建部署Pipeline(一)
- 谭子python学习笔记--函数的参数
- Android studio 初步使用JNI(一)配置NDK
- Gradle语法简介
- C++排序函数中cmp()比较函数详解
- Invalid action class configuration that references an unknown class named [XX]
- htmlunit+quartz定时抓取博文并生成jsp页面
- src/png_io.c:3:17: fatal error: png.h
- Mybatis 一对多(OneToOne)关系映射
- 发送有序广播
- NIO与传统IO的区别
- Linux之守护进程
- hadoop多节点集群搭建过程中错误:No such file or directoryhdfs,logs提示出现出现^M的解决办法