c++中unordered_map使用自定义类型作为键或值的问题

【 C++ 】unordered_map和unordered_set的介绍和使用 目录 1、unordered系列关联式容器 2、unordered_map unordered_map的介绍 unordered_map的构造方式 unordered_map的函数接口说明 unordered_multimap 3、unordered_set unordered_set的介绍 unordered_set的构造方式 unordered_set的函数接口说明 阅读详情

        今天在使用自定义的枚举作为unordered_map的键时,提示以下错误:

undefined reference to `std::tr1::hash<v4l2::_VideoFormat>::operator()(v4l2::_VideoFormat) const'

其中_VideoFormat是我定义的枚举。

在网上查了是这样说的:

      首先定义模板作为unordered_map的第三个参数:

   struct EnumClassHash

    {

           template <typename T>

           std::size_t operator()(T t) const

            {

              return static_cast<std::size_t>(t);

            }

     };

使用: 

  enum class MyEnum {};

  std::unordered_map<MyEnum, int, EnumClassHash> myMap;

     这样就简单的解决了各种operator的错误了。

原文链接在这儿:

https://blog.youkuaiyun.com/f120854632/article/details/88343575

https://stackoverflow.com/questions/18837857/cant-use-enum-class-as-unordered-map-key

ps:unordered_map 使用

头文件:

#include <tr1/unordered_map>

命名空间:

using namespace std;
using namespace std::tr1;

 

C++STL之unordered_map的简单使用_unordered_map&lt;std string, float&gt; unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。以键值对(pair类型)的形式存储数据,存储的各个键值对的键互不相同且不允许被修改。unordered_map 容器底层采用的是哈希表存储结构,该结构本身不具有对数据的排序功能,所以此容器内部不会自行对存储的键值对进行排序。unordered_map容器通过其键值访问单个元素的速度要比map容器快。做图的题的时候可以用这个来保存邻接表。 阅读详情

相关推荐

ANSYS Workbench实战:用网格自适应搞定超弹性橡胶大变形仿真(附避坑命令流)

本文深入探讨了ANSYS Workbench中超弹性橡胶大变形仿真的网格自适应技术,重点解析了混合U-P单元的应用、非线性自适应网格的实战技巧及材料模型选择的注意事项。通过具体案例和命令流示例,帮助工程师有效解决橡胶仿真中的收敛问题和网格畸变挑战,提升仿真精度和效率。

weixin_42666036的博客 303

【C++容器】unordered_map与unordered_multimap使用全览

本文详细介绍了C++ STL中的无序关联容器unordered_map和unordered_multimap。它们基于哈希表实现,具有O(1)的平均操作复杂度,但元素无序存储。unordered_map要求键唯一,支持operator[]快速访问;而unordered_multimap允许键重复,不支持直接索引访问。文章通过代码示例展示了两种容器的创建、插入、访问、查找和删除等基本操作,并重点比较了它们的特性和使用场景,为开发者选择合适的数据结构提供了参考。

obroccolio的博客 1381

深入探讨 VQ-VAE:理解变分量化自动编码器

VQ-VAE代表"Variational Quantized Variational Autoencoder",是一种生成模型,通常用于处理高维数据,如图像和音频。它的设计灵感来自于变分自动编码器(VAE)和量化方法,结合了它们的优点,使得 VQ-VAE 能够生成高质量的数据,并在数据表示上引入离散性。VQ-VAE 是一种强大的生成模型,结合了变分自动编码器和量化方法的优点。它在图像和音频生成、数据压缩和生成性对抗网络等领域具有广泛的应用。

DeepViewInsight的博客 7016

C++ unordered_map使用自定义类型作为键值

主要说初始化 vector<int> v(10, 0); //长度,初值 int arr[] = {1,2,3,4,5}; vector<int> v1(arr, arr+5); //二维 vector<vector<int>> v2; v2.resize(3); //行号 for(int i =0;i<3;i++) { v2[i].resi...

x1471898145的博客 2558

Xilinx PL端DP显示接口开发实战(一)——环境搭建与硬件选型

本文详细介绍了Xilinx PL端DP显示接口开发的环境搭建与硬件选型实战经验。从Vivado和Vitis 2021.1版本的软件安装要点,到DP141和MCDP6000芯片的选型建议,再到DP1.4接口的RX/TX方向开发关键点,为开发者提供了全面的技术指导。文章还分享了IP核配置、BD原理图设计以及常见问题排查的实用技巧,帮助开发者高效完成Xilinx DP接口开发项目。

weixin_29250573的博客 174

CANoe.Diva实战:基于CDD的UDS诊断自动化测试全流程解析

本文详细解析了使用CANoe.Diva进行基于CDD的UDS诊断自动化测试的全流程,包括环境搭建、CDD文件配置、测试范围设置、用例生成与验证、CANoe集成测试及报告分析。通过实战经验分享,帮助工程师快速掌握诊断自动化测试技巧,提升测试效率与质量。

weixin_29258297的博客 218

unordered_map 自定义键值类型

C++中的map、unordered_map 排序 对于key的自定义排序 key是结构体的排序 map对于value(值)排序 key是结构体,map对于value(值)排序 unordered_map 自定义key类型 对于value(值)排序

IS_MOKE的博客 1164

从零到自动化:用Python脚本搞定华为CE12800的NETCONF初始配置(含完整代码)

本文详细介绍了如何使用Python脚本实现华为CE12800交换机的NETCONF初始配置自动化。从环境准备、脚本架构设计到SSH连接与NETCONF配置实战,提供了完整的代码示例和错误处理建议,帮助运维工程师高效完成网络设备自动化配置,提升工作效率。

weixin_42525551的博客 401

unordered_map自定义键类型

自定义类型: struct my_key { int num; string name; }; 1、由于unordered_map是采用哈希实现的,对于系统的类型int, string等,都已经定义好了hash函数,所以如果我们引入新的自定义类型的话,系统并不知道如何去计算我们引入的自定义类型的hash值,所以我们就需要自己定义hash函数,告诉系统用这种方式去计算我们...

z-k的博客 4529

Python实现多元线性回归(Multiple Linear Regression)

多元线性回归是一种用于建立多个自变量与因变量之间关系的统计学方法。在多元线性回归中,我们可以通过多个自变量来预测一个因变量的值。每个自变量对因变量的影响可以用回归系数来表示。

优快云 精品推荐 4331

【原理图PCB专题】Cadence 17.4版本原理图及PCB 模块复用

在我们设计复杂板卡的时候,往往会遇到一部分电路被反复使用的情况。Cadence允许设计者一开始就将复用模块设计好,以后只要直接调用复用模块就可以直接用以设计更复杂的电路板了。这对于大规模集成设计无疑是非常好的选择,它不仅让设计者不必花费时间在相同模块反复设计上,更有利于电路的模块化设计。

一点硬件 2016

【转载】C++ STL:unordered_map 自定义键值类型

C++ STL:unordered_map 自定义键值类型

Serena4的博客 1289

太空安全卫士:基于YOLOv5的空间态势感知系统(实现轨道碰撞预警与太空环境保护)

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_71589036的博客 90

无序容器unorder_map使用自定义类型

unorder_map使用hash函数和关键字类型的==运算符来组织元素,使用hash函数将元素映射到桶中,为了访问一个元素,容器首先计算元素的哈希值,他指出应该搜索那个桶。默认情况下,无序容器使用关键字类型的==运算符来比较元素,它还使用一个hash类型的对象来生成每个元素的哈希值。标准库位内置类型提供了hash模板。包括string类型。但是我们不能直接定义关键类型为自定义类型的无序容器。因此

yang20141109的专栏 1303

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

c++ map与unordered_map区别及使用

转自:https://blog.youkuaiyun.com/BillCYJ/article/details/78985895 需要引入的头文件不同 map: #include &lt; map &gt; unordered_map: #include &lt; unordered_map &gt; 内部实现机理不同 map: map内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二...

别说话写代码的博客 27万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

c++中unordered_map的用法的详述(包含unordered_map和map的区别)

一、前言 如果要在c++ 中使用这map 和unordered_map 两个函数,需要分别引入下面的两个头文件 #include<map> #include<unordered_map> unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unor

进击的Explorer 9万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

c++ map unordered_map使用大全

1.插入元素 map中插入元素的方法有如下集中 1.1 直接用[]符 map<int, string> mymap; mymap[1] = "a"; map的源码中重载了[]操作符, map<_Key, _Tp, _Compare, _Allocator>::operator[](key_type&& __k) { return __tree_.__emplace_unique_key_args(__k, _VSTD::piecewise_c

bitcarmanlee的博客 2万+

【C++】: unordered_map的使用

unordered_map中的的元素是键值对unordered_map中的key是唯一的,并且不能修改unordered_map遍历是一个无需的数列unordered_map的底层为哈希结构支持[ ]操作符,operator[ ]中实际进行插入查找。

元清的博客 7114

c++ unordered_map和map的区别

unordered中文翻译即 “无序的” ,自然地,unordered_map也就是不排序的map的意思。unordered_set与set和unordered_map与map是可以类比的,它们的区别大致是一样的。unordered_map在c++11加入的标准模板库,c++11以前是无法使用unordered_map、unordered_set、auto、stoi等标准模板的。unordered_map包含在unordered_map头文件中,即如果想要使用时,引入下面代码即可。

weixin_52115456的博客 1万+

C++ 中unordered_map的用法

cplusplus c++使用unordered_map #include&lt;tr1/unordered_map&gt;//在unordered_map之前加上tr1库名, using namespace std::tr1;//与此同时需要加上命名空间 [查找元素是否存在] 若有unordered_map &lt;int, int&gt; mp;查找x是否在m...

snailme的博客 6万+

【C++】unordered_map 的使用

转载自:【C++】undered_map的用法总结(1) - 我得去图书馆了 - 博客园 1.介绍 unordered_map是一个关联容器,内部采用的是hash表结构,拥有快速检索的功能。 1.1 特性 关联性:通过key去检索value,而不是通过绝对地址(和顺序容器不同) 无序性:使用hash表存储,内部无序 Map : 每个值对应一个键值 键唯一性:不存在两个元素的键一样 动态内存管理:使用内存管理模型来动态管理所需要的内存空间 1.2 Hashtable和bucket 由于uno

xiaoyu_wu的博客 1万+

C++ unordered_map

是存储键值对的关联式容器,其允许通过key快速的索引到与其对应的value。2.在中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。3.在内部没有对按照任何特定的顺序排序为了能在常数范围内找到key所对应的value将相同哈希值的键值对放在相同的桶中。容器通过key访问单个元素要比map快,但它通常在遍历元素子集的范围迭代方面效率较低。实现了直接访问操作符,它允许使用key作为参数直接访问value。6.

2301_79881188的博客 3069

C++ STL unordered_map容器用法详解

C++ STL 标准库中提供有 4 种无序关联式容器,本节先讲解 unordered_map 容器。unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。

weixin_51710308的博客 3450

C++进阶--unordered_set、unordered_map的介绍和使用

1.unordered_set是不按特定顺序存储键值的关联式容器,其允许通过键值快速的索引到对应的元素。2.在unordered_set中,元素的值同时也是唯一的标识它的key。3.在内部,unordered_set中的元素没有按照任何特定的顺序排序,为了能在常数范围内找到指定的key,unordered_set将相同哈希值的键值放在相同的桶中。4.unordered_set容器通过key访问单个元素要比set快,但它通常在遍历元素子集的范围迭代方面效率较低。5.它的迭代器至少是前向迭代器。

sushang的博客 4586

C++ unordered_map使用问题

第一次使用unordered_map 最开始引入#include&lt;unordered_map&gt;,但是报错:[Error] 'unordered_map' was not declared in this scope 解决办法: 引入#include&lt;tr1/unordered_map&gt;并且使用using namespace std::tr1; #include...

fantasy_94的博客 9510
上一篇: 使用thrift搭建lucene的rpc调用
下一篇: libstdc++.so.6: cannot open shared object file: No such file or directory
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值