写在最前面,本文摘录于柳神笔记:

  sort 函数在头⽂件 #include ⾥⾯,主要是对⼀个数组进⾏排序( int arr[] 数组或 者 vector 数组都⾏), vector 是容器,要⽤ v.begin() 和 v.end() 表示头尾;⽽ int arr[] ⽤ arr 表示数 组的⾸地址, arr+n 表示尾部~

  (2)sort 默认是从⼩到⼤排列的,也可以指定第三个参数 cmp 函数,然后⾃⼰定义⼀个 cmp 函数指定 排序规则~ cmp 最好⽤的还是在结构体中,尤其是很多排序的题⽬~⽐如⼀个学⽣结构体 stu 有学 号和成绩两个变量,要求如果成绩不同就按照成绩从⼤到⼩排列,如果成绩相同就按照学号从⼩到⼤ 排列,那么就可以写⼀个 cmp 数组实现这个看上去有点复杂的排序过程:

注意: sort 函数的 cmp 必须按照规定来写,即必须只是 > 或者 < ,⽐如: return a > b; 或 者 return a < b; ⽽不能是 <= 或者 >= ,因为快速排序的思想中, cmp 函数是当结果为 false 的 时候迭代器指针暂停开始交换两个元素的位置,当 cmp 函数 return a <= b 时,若中间元素前⾯的 元素都⽐它⼩,⽽后⾯的元素都跟它相等或者⽐它⼩,那么 cmp 恒返回 true ,迭代器指针会不 断右移导致程序越界,发⽣段错误~

段错误就是指访问的内存超出了系统所给这个程序的内存空间。

最新文章

  1. Command and Query Responsibility Segregation (CQRS) Pattern 命令和查询职责分离(CQRS)模式
  2. hduoj 1285 确定比赛名次
  3. 使用Yeoman快速启动AngularJS项目开发
  4. Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory
  5. truncate的用法
  6. golang执行linux命令
  7. delphi的socket通讯 多个客户端 (转)
  8. [算法导论]贪心算法(greedy algorithm)
  9. eclipse 连接手机的 核心解决办法
  10. bootsraps ch1
  11. java_web学习(16)Ajax
  12. leetCode in Java (一)
  13. 使用CoreRT将.NET Core发布为Native应用程序
  14. LeetCode &amp; Q121-Best Time to Buy and Sell Stock-Easy
  15. 【JavaScript】 使用Async 和 Promise 完美解决回调地狱
  16. FTP之二
  17. 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!
  18. thinkphp 随笔
  19. springsecurity的remember me
  20. Sublime text 3 中Package Control 的安装与使用方法

热门文章

  1. 转载:DRC
  2. AJAX-状态属性
  3. zlt项目实践
  4. The entity type XXX is not part of the model for the current context.
  5. IntelliJ IDEA 2017.3尚硅谷-----如何创建模块
  6. 「模板」AC自动机
  7. 二次封装 Reponse,视图家族
  8. python基础 pyc
  9. 【资源分享】RPG Maker 2000/2003 简体中文版
  10. 通过python代码连接MySQL以及插入和显示数据