尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C++智能指针配合STL模板类
代码#include unordered_map #include set #include memory class ResID { public: using SP std::shared_ptrResID; ResID() default; ResID(const std::string id, const std::string type) : m_id(id) , m_type(type) { } public: ~ResID() default; bool isValid() const { return !m_id.empty() !m_type.empty(); }; bool isEqual(const ResID other) const { return m_id other.m_id m_type other.m_type; } std::string type() const { return m_type; } std::string id() const { return m_id; } void setType(const std::string type) { m_type type; } void setId(const std::string id) { m_id id; } // 自定义比较器 struct Compare { bool operator()(ResID::SP lhs, ResID::SP rhs) const { // 根据value成员变量进行比较 return std::tuple(lhs-type(), lhs-id()) std::tuple(lhs-type(), lhs-id()); } }; using Set std::setResID::SP, ResID::Compare; // 自定义比较器 struct Equal { bool operator()(ResID::SP lhs, ResID::SP rhs) const { return lhs-isEqual(*rhs); } }; // 自定义比较器 struct Hash { size_t operator()(ResID::SP lhs) const { return std::hashstd::string()(lhs-type()) ^ std::hashstd::string()(lhs-id()); } }; templateclass T using UMap std::unordered_mapResID::SP, T, ResID::Hash, ResID::Equal; private: std::string m_id; std::string m_type; };示例class Data{ public: int value; }; auto resID std::make_sharedResID(id, type); auto resID2 std::make_sharedResID(id2, type2); ResIDData::UMap uMap; uMap.emplace(resID, {}); uMap.emplace(resID2, {}); uMap.emplace(resID, {}); assert(uMap.size() 2);创作不易小小的支持一下吧
RELATED

相关推荐

C++字体库开发之字体回退十

C++字体库开发之字体回退十

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/2 10:44:06
基于ESP8266与MQTT的智能家居远程控制模块设计方案

基于ESP8266与MQTT的智能家居远程控制模块设计方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/2 10:39:05
PLFM雷达波形设计:线性调频与相位编码融合的脉冲压缩实践

PLFM雷达波形设计:线性调频与相位编码融合的脉冲压缩实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/2 10:39:05
MORE NEWS

更多资讯

📰

立春海报设计工具评测与高效制作指南

1. 立春海报设计需求解析立春作为二十四节气之首,在传统文化中象征着万物复苏和新起点。制作立春海报需要兼顾节气文化内涵与现代视觉表达,这对设计工具提出了三个核心要求:传统文化元素库:工具需提供梅花、柳枝、燕子等春季意象素…

📰

企业AI应用中实时数据处理架构与优化实践

1. 实时数据在企业AI应用中的核心价值 实时数据正成为企业AI系统的生命线。在金融风控领域,毫秒级的交易数据延迟可能导致数百万损失;在智能制造中,产线传感器数据的实时分析能立即发现质量缺陷。不同于传统批处理数据,实时数据流…

📰

具身智能:物理形态如何塑造机器智能

1. 具身智能的本质特征解析 具身智能(Embodied Intelligence)这一概念最早源于认知科学领域,其核心观点认为:智能并非独立于物理形态存在的抽象能力,而是通过与环境的持续互动中涌现出来的属性。这种互动必须依赖具体的…

📰

电脑优化工具:提升系统性能的终极解决方案

1. 电脑优化神器概述 作为一名长期与电脑打交道的技术从业者,我深知系统运行缓慢带来的困扰。这款电脑优化工具正是针对这一痛点开发的综合解决方案,它不仅能够显著提升电脑运行速度,更重要的是能够深度管理系统服务和进程,从根本…

📰

CarSim与Simulink联合仿真实现车辆换道轨迹规划与跟踪

1. 项目概述:车辆换道轨迹规划与跟踪的联合仿真方案在智能驾驶和车辆动力学控制领域,换道轨迹规划与跟踪是最基础也最具挑战性的课题之一。这个项目通过CarSim与Simulink的联合仿真环境,构建了一套完整的解决方案。CarSim提供高精度的车辆动力…

📰

自动驾驶出租车商业化进程与中美发展差异分析

1. 自动驾驶出租车商业化进程的全球格局变化 最近美国Robotaxi(自动驾驶出租车)领域出现了一些关键性突破,标志着这个行业正在从技术验证阶段迈向真正的商业闭环。作为从业多年的自动驾驶系统工程师,我观察到这些变化不仅仅是技术…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬