对于float或者double的集合求解交集

news/2024/9/22 9:46:29/

对于一般的集合求解交集,我们直接使用std::set_intersection即可,但是float和double都有精度问题,如果直接求交集,会认为比如0.9999和1.0001是两个数,造成并没有真正取得交集,其实这个函数实现也很容易,那么我在这里分享其模板实现。

 

//author:autumoon
//邮箱:9506@163.com
//日期:2023-07-05 
template <typename T>
std::set<T> MyValueIntersection(const std::set<T>& sValuesF, const std::set<T>& sValuesS, double dTolerance = 1e-6)
{std::set<T> sDstValues;//对于每一个元素,如果两边同时包含,则添加,需要考虑误差for (auto it_f = sValuesF.begin(); it_f != sValuesF.end(); ++it_f){const T& vF = *it_f;for (auto it_s = sValuesS.begin(); it_s != sValuesS.end(); ++it_s){const T& vS = *it_s;if (fabs(vF - vS) < dTolerance){bool bExist = false;//遍历每一个元素,如果不存在则添加,因为精度问题,不能直接添加for (auto it_d = sDstValues.begin(); it_d != sDstValues.end(); ++it_d){const T& vD = *it_d;if (fabs(vF - vD) < dTolerance){bExist = true;break;}}if (!bExist){sDstValues.insert(vF);}}}}return sDstValues;
}

欢迎交流与讨论。


http://www.ppmy.cn/news/735280.html

相关文章

如何部署LVS负载均衡集群(NAT模式)

目录 一、集群 负载均衡集群&#xff08;Load Balance Cluster&#xff09; 高可用集群&#xff08;High Availability Cluster&#xff09; 高性能运算集群&#xff08;High Performance Computer Cluster&#xff09; 二、负载均衡工作模式 VIP地址特性&#xff08;虚拟…

Qemu退出快捷键和原理解析

1、退出快捷键 大家在用Qemu时经常会遇到要退出的情况。一般做法是使用ps或者lsof等命令找出qemu的进程ID&#xff0c;使用KILL命令杀死&#xff0c;该做法相当繁琐。实质上&#xff0c;Qemu已经设计了退出的快捷键&#xff1a;按下ctrla&#xff0c;之后按大写X。 2、代码分…

用科技智造新未来!在线开发平台强力助推数字化发展

在科技智造新时代&#xff0c;科技的力量是无处不见的。运用科技可以创造美好的生活&#xff0c;可以实现数字化发展&#xff0c;帮助企业实现流程化管理。在线开发平台将科技元素注入到平台中&#xff0c;将科技与办公需求相连接&#xff0c;创造高效率办公及流程化发展。 1…

最新支付牌照续展结果公布,本元支付等3家中止机构续展成功

中国人民银行于2023年7月5日公布了最新一批支付牌照续展情况&#xff0c;分为续展成功&#xff0c;续展中止&#xff0c;注销、中止机构恢复审查、续展成功等&#xff0c;具体如下&#xff1a; 续展结果 成功续展机构&#xff08;9家&#xff09; 北京度小满支付科技有限公司…

孔乙己

细胞器版 转载自 https://library.moegirl.org/%E5%AD%94%E4%B9%99%E5%B7%B1:%E7%BB%86%E8%83%9E%E5%99%A8%E7%89%88 效应T细胞的高尔基体的格局,是和别处不同的&#xff1a;都是对着质膜的一个曲尺形的通道&#xff0c;管里面预备着加工好的蛋白质&#xff0c;可以随时使用。做…

与直男癌程序猿男友相处十招必杀技,尤其最后一招

都说程序猿人傻钱多情商低&#xff0c;难相处&#xff0c; 现整理10个大招送给诸位程序猿家属&#xff0c; 没有效果你找我。 第一招 鼠标 鼠标 程序猿的生命 那极具质感的微动声&#xff0c; 紧扣手型的曲线。 点开了屏幕&#xff0c; 也点开了心扉! 他握着鼠标&#…

[系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向

您可能之前看到过我写的类似文章&#xff0c;为什么还要重复撰写呢&#xff1f;只是想更好地帮助初学者了解病毒逆向分析和系统安全&#xff0c;更加成体系且不破坏之前的系列。因此&#xff0c;我重新开设了这个专栏&#xff0c;准备系统整理和深入学习系统安全、逆向分析和恶…

[安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向

从2019年7月开始&#xff0c;我来到了一个陌生的专业——网络空间安全。初入安全领域&#xff0c;是非常痛苦和难受的&#xff0c;要学的东西太多、涉及面太广&#xff0c;但好在自己通过分享100篇“网络安全自学”系列文章&#xff0c;艰难前行着。感恩这一年相识、相知、相趣…