#include <iostream> #include <vector> #include <algorithm> // 定义比较函数 bool cmp(int a, int b) { // 按照元素的绝对值大小进行排序 return abs(a) < abs(b); } int main() { std::vector<int> vec = {3, -1, 2, -4, 5}; // 使用自定义
上面的cmp1这个函数,笔者个人猜想其实是说,如果a>b,那么返回true,认为前面的数大于后面的数是正确的。 所以在进行排序的时候,如果前面的数大于后面的,那么经过cmp1这个函数,返回true,认为正确,所以不用更改。 如果前面的数小于后面的数,那么经过cmp1这个函数,返回false,认为错误,所以要换一下位置。 所以笔者就根据...
C++趣味编程及算法入门上QQ阅读APP,阅读体验更流畅 领看书特权 27.3 一级排序和二级排序 上QQ阅读看本书,第一时间看更新 登录订阅本章 > 27.4 排序时指定排序规则——cmp函数 上QQ阅读看本书,第一时间看更新 登录订阅本章 >上翻页区 功能呼出区 下翻页区上QQ阅读 APP听书 ...
简单来说,它的功能就是定义排序时的规则,使数组按照自己定义的规则进行排序。 3.functools.cmp_to_key()怎么用 举例来说:一个数组[1,0,-10,200,3,7],正常按照从小到大进行排序,结果为:[-10, 0, 1, 3, 7, 200]。 如果我们想按照数组中元素的绝对值进行排序,那我们就可以采用如下的代码: import func...