当前位置: 首页 > article >正文

C++编程——关于比较器的使用

注:

简单记录一下C++里比较器的构建,常用于自定义 sort() 函数和优先队列的改写优先级。

简单构建比较器:

sort() 函数:
vector<int> arr;//(a, b) -> true  : a < b
//升序排列
bool compare(int a, int b) {return a < b;
}sort(arr.begin(), arr.end(), compare);
优先级队列:
//(a, b) -> true : a > b -> b优先级高,即小值优先级高
//排列优先级
struct compare{bool operator()(int a, int b){return a > b;}
};priority_queue<int, vector<int>, compare> queue;

匿名函数构建比较器:

sort() 函数:
vector<int> arr;//(a, b) -> true  : a < b
//升序排列
sort(arr.begin(), arr.end(), [](int a, int b){ return a < b });
优先级队列:
// 方法1:使用 lambda 表达式 + decltype
auto cmp = [](int a, int b) { return a > b; };
priority_queue<int, vector<int>, decltype(cmp)> queue1(cmp);// 方法2:使用 std::function
priority_queue<int, vector<int>, function<bool(int, int)>> queue2([](int a, int b) {return a > b;
});

http://www.lryc.cn/news/2402867.html

相关文章:

  • 第2天:认识LSTM
  • 自动化提示生成框架(AutoPrompt)
  • 两轮自平衡机器人建模、LQR控制与仿真分析
  • 在NLP文本处理中,将字符映射到阿拉伯数字(构建词汇表vocab)的核心目的和意义
  • 中国首套1公里高分辨率大气湿度指数数据集(2003~2020)
  • 计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点可视化分析
  • python学习打卡day45
  • JAVA元编程
  • Verilog编程技巧01——如何编写三段式状态机
  • 智启未来:当知识库遇见莫奈的调色盘——API工作流重构企业服务美学
  • java教程笔记(十一)-泛型
  • JUnit​​ 和 ​​Mockito​​ 的详细说明及示例,涵盖核心概念、常用注解、测试场景和实战案例。
  • 【Go语言基础【7】】条件语句
  • 【Python 算法零基础 4.排序 ⑪ 十大排序算法总结】
  • 解决神经网络输出尺寸过小的实战方案
  • Python备忘
  • 如何在 Windows 11 中永久更改默认浏览器:阻止 Edge 占据主导地位
  • 量子比特实现方式
  • 智慧水务发展迅猛:从物联网架构到AIoT系统的跨越式升级
  • 1、cpp实现Python的print函数
  • 【Linux基础知识系列】第十四篇-系统监控与性能优化
  • 云原生思维重塑数字化基座:从理念到实践的深度剖析
  • Animate On Scroll 用于在用户滚动页面时实现元素的动画效果
  • Java高级 | 【实验五】Spring boot+mybatis操作数据库
  • [蓝桥杯]搭积木
  • 在MATLAB中使用自定义的ROS2消息
  • 使用C/C++和OpenCV实现图像拼接
  • 神经网络-Day46
  • Ubuntu中常用的网络命令指南
  • JVM——如何打造一个类加载器?