仿函数 greater less

embedded/2025/3/10 20:49:47/

仿函数

  • 仿函数是一个类或结构体,通过重载 operator() 实现函数调用的效果。
  • 仿函数是一个对象,可以包含成员变量,用于存储状态。
  • 仿函数可以结合模板使用,使其支持多种类型。
  • 仿函数通常是内联的(inline),性能可能比普通函数指针更高。

仿函数的使用

将仿函数作为参数传递

#include <iostream>
#include <vector>
#include <algorithm>struct Printer {void operator()(int value) const {std::cout << value << " ";}
};int main() {std::vector<int> vec = {1, 2, 3, 4, 5};// 使用仿函数 Printer 打印每个元素std::for_each(vec.begin(), vec.end(), Printer());  // 输出 1 2 3 4 5std::cout << std::endl;return 0;
}

在 std::sort 中使用仿函数

#include <iostream>
#include <vector>
#include <algorithm>struct GreaterThan {bool operator()(int a, int b) const {return a > b;}
};int main() {std::vector<int> vec = {3, 1, 4, 2};// 使用仿函数 GreaterThan 进行降序排序std::sort(vec.begin(), vec.end(), GreaterThan());// 输出排序后的结果for (int num : vec) {std::cout << num << " ";  // 输出 4 3 2 1}std::cout << std::endl;return 0;
}

greater less

std::greaterstd::less
头文件<functional><functional>
std::sort 中的使用std::sort(vec.begin(), vec.end(), std::greater<int>()); // 降序排序std::sort(vec.begin(), vec.end(), std::less<int>()); // 升序排序
std::priority_queue 中的使用std::priority_queue<int, std::vector<int>, std::greater<int>> pq; // 小根堆std::priority_queue<int> pq; // 默认大根堆
与 Lambda 的关系[](int a, int b) { return a > b; }[](int a, int b) { return a < b; }

http://www.ppmy.cn/embedded/171576.html

相关文章

Rubick:基于Electron的开源插件化桌面工具箱

Rubick 是一款基于 Electron 构建的开源桌面工具箱&#xff0c;专为追求高效办公和个性化体验的用户设计。它通过自由集成丰富的插件&#xff0c;让用户能够根据自己的需求打造极致的桌面端效能工具。 软件命名的由来Rubick 的名字来源于《DOTA2》中的英雄 Rubick&#xff08;…

探索低空经济,无人机及载人直升机低空应用技术详解

探索低空经济时&#xff0c;无人机及载人直升机低空应用技术是核心要素。以下是对这两类技术的详细解析&#xff1a; 一、无人机低空应用技术 1. 飞行控制技术 无人机需要强大的飞行控制系统&#xff0c;这涉及传感器融合、飞行器稳定性控制、自动化飞行和紧急情况下的自动避…

【蓝桥杯单片机】第十二届省赛

一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数&#xff08;led.c&#xff09; void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…

第三十天:Scrapy 框架-分布式

文章目录 一、介绍scrapy-redis框架 二、分布式原理 三、分布式爬虫的实现 四、scrapy-redis框架的安装 五、部署scrapy-redis 六、给爬虫增加配置信息 七、运行程序 八、数据导入到mongodb中 九、数据导入到MySQL中 十、setting文件配置 一、介绍scrapy-redis框架 …

学网络安全可以考取哪些证书?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在IT领域&#xff0c;证书是一个重要的加分项&#xff0c;更是我们升职加薪的好帮手&#xff0c;那么网络安全相关证书有哪些?网络安全相关的证书种类繁多&#…

点云软件VeloView开发环境搭建与编译

官方编译说明 LidarView / LidarView-Superbuild GitLab 我的编译过程&#xff1a; 安装vs2019&#xff0c;windows sdk&#xff0c;qt5.14.2&#xff08;没安装到5.15.7&#xff09;&#xff0c;git&#xff0c;cmake3.31&#xff0c;python3.7.9&#xff0c;ninja下载放到…

【docker简化部署有状态prometheus+grafana】

文章目录 第一步 下载依赖第二步 选择一个有权限的文件夹新建配置文件prometheus.ymldocker中运行命令存储数据启动prometheus 第三步 启动grafana 第一步 下载依赖 docker pull grafana/grafana:latest docker pull prom/prometheus:latest第二步 选择一个有权限的文件夹 例…

推测gpt4o视觉皮层建立的过程

一、视觉输入的编码与结构化 视觉Tokenization的底层逻辑 图像分块与降维&#xff1a;输入图像被分割为固定大小的区块&#xff08;例如16x16像素&#xff09;&#xff0c;每个区块通过线性变换&#xff08;矩阵乘法&#xff09;压缩为低维向量&#xff08;如768维&#xff09;…