C++内置sort函数与自定义比较器的工作原理及示例解析
C++ sort自定义比较器逻辑解析及示例
比较器规则说明
这段代码里的sort函数通过Lambda表达式定义了自定义排序规则,具体逻辑:
- 优先比较每个子数组的第一个元素:
- 若两个子数组的第一个元素不相等,第一个元素更小的子数组排在前面(即按第一个元素升序排列)
- 若两个子数组的第一个元素相等,第二个元素更大的子数组排在前面(即按第二个元素降序排列)
输入示例的排序结果
给定输入:
vector<vector<int>> lights = {{5,5},{6,3},{3,6}};
经过sort函数排序后,lights的最终内容为:
{{3,6}, {5,5}, {6,3}}
排序过程拆解
- 提取所有子数组的第一个元素:5、6、3,按升序排序后顺序为3、5、6
- 由于所有子数组的第一个元素都不重复,无需触发第二个元素的比较规则,直接按第一个元素的升序顺序排列即可。
内容的提问来源于stack exchange,提问作者Vaibhav
相关产品推荐
相关产品推荐

