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

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.xdnf.cn/news/12400.html

相关文章:

  • 1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
  • 深入解析YUM与DNF:RPM包管理器的架构演进与功能对比
  • 前端flex、grid布局
  • VS如何编译Zlib库
  • curl获取ip定位信息 --- libcurl-easy(二)
  • 理解非结构化文档:将 Reducto 解析与 Elasticsearch 结合使用
  • Qt生成日志与以及报错文件(mingw64位,winDbg)————附带详细解说
  • Cesium使用glb模型、图片标记来实现实时轨迹
  • 数学:数的概念是如何发展的?
  • 基于IDIG-GAN的小样本电机轴承故障诊断
  • PWN-中级ROP-[HNCTF 2022 WEEK2]ret2csu
  • 紧急调整!亚马逊70%谷歌广告预算转向新渠道
  • 引领AI安全新时代 Accelerate 2025北亚巡展·北京站成功举办
  • Spring Boot 实现流式响应(兼容 2.7.x)
  • 408第一季 - 数据结构 - 栈与队列
  • 实时数据分析的技术架构:Lambda vs Kappa架构选择
  • 如何在CloudCompare中打开pcd文件
  • 使用 Docker Compose 从零部署 TeamCity + PostgreSQL(详细新手教程)
  • 企业版管理工具无法打开(APP)
  • 如何实现安卓端与苹果端互通的多种方案
  • [BJDCTF2020]Easy MD5 1
  • Python打卡训练营day46——2025.06.06
  • 中国制造名牌剃须刀:优质之选,情礼佳物
  • 业务设计需要做好哪几点?
  • 类型注解实战:用 mypy 构建企业级 Python 项目的关键策略
  • 【Dv3Admin】系统视图菜单字段管理API文件解析
  • PLSQLDeveloper配置OracleInstantClient连接Oracle数据库
  • 永磁同步电机控制算法--模糊PI转速控制器
  • 论文阅读:HySCDG生成式数据处理流程
  • 国产pcie switch 8748+飞腾/龙芯/昇腾高速存储方案设计