C++ unordered_map 自定义key
来源:互联网 发布:网络英语教学 编辑:程序博客网 时间:2024/06/03 14:22
C++ unordered_map 自定义key
flyfish
调试环境 VC++2017
自定义key主要是自定义类型的std::hash 的偏特化(specialization)
返回数据类型T哈希值
C++11为所有基本类型都提供了specialization实现
例如
std::hash<std::string>std::hash<std::wstring>
假设使用基本类似 std::unordered_map<string,string> map;
因为C++已经提供了基本类型key的hash 所以直接声明就可以使用
如果是我们自定义的类,就需要提供std::hash specialization的实现
头文件与实现文件分开的写法
头文件
#pragma onceclass Node;namespace std{ template <> struct hash<Node> { int operator()(const Node&) const; };}class Node{public: friend struct std::hash<Node>;public: int a; int b;};
实现文件
namespace std { int hash<Node>::operator()(const Node& v) const { return std::hash<int>{}(v.a); }}
放置一个文件的写法
#pragma onceclass Node{public: friend struct std::hash<Node>;public: int a; int b;};namespace std { template <> struct std::hash<Node> { int operator()(const Node& v) const { return std::hash<int>{}(v.a); } };}
阅读全文
0 0
- unordered_map 自定义key
- C++ unordered_map 自定义key
- C++ unordered_map自定义KEY用法以及insert无法覆盖解决办法
- 用std::pair做Unordered_map的key(C++)
- c++: unordered_map
- STL: unordered_map 自定义键值类型的使用(C++)
- C++unordered_map使用例子
- 【c++】unordered_set和unordered_map
- map 和 unordered_map以char * 为key
- unordered_map以char *作为key值
- STL unordered_map char*作为key 笔记
- unordered_map
- unordered_map
- unordered_map
- unordered_map
- unordered_map -
- unordered_map
- unordered_map
- 前端最全的资源教程
- GPT分区+UEFI ssd+hdd 混合硬盘 安装 win10 ubuntu16.04 双系统
- redis面试总结
- ubuntu 国内源
- TabLayout+ViewPager+Fragment(代码)
- C++ unordered_map 自定义key
- TensorFlow版本带来的concat错误
- 程序员必须知道的十大基础实用算法及其讲解(转载)
- 将指定的计数添加到该信号量中会导致其超过最大计数
- 日常用的一些命令,包括linux,git
- Java生成二维码(zxing、qrCode)
- Android hdpi ldpi mdpi xhdpi xxhdpi适配详解
- C51 数字和字符串互相转化
- Redis未授权访问漏洞客户修复通知