unordered_map的哈希HASH重载——举例unordered_map与pair联合使用

2023-11-06

有些时候,为了图省力,我们没准会这样的调用一个函数

unordered_map< pair<int, int>, int > mp;

但是很显然的是,这样的写法是会报错的,因为pair还没有HASH键值。

error: call to implicitly-deleted default constructor of 'std::__1::hash<std::__1::pair<int, int> >'
        : _Hash() {}

会返回这样的一个报错,看到这里的hash和pair就应该知道了,我们的pair还没有hash值!

改良:

struct hashfunc
{
    template<typename T, typename U>
    size_t operator() (const pair<T, U> &i) const
    {
        return hash<T>()(i.first) ^ hash<U>()(i.second);
    }
};
unordered_map< pair<int, int>, int , hashfunc > mp;

我们自己手动做一个hash就可以继续使用unordered_map了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unordered_map的哈希HASH重载——举例unordered_map与pair联合使用 的相关文章

随机推荐

  • Unity调用相机的方式总结

    1 通过C 即脚本 的方式调用相机 参考引用Unity调用摄像头功能简单实现方法 Unity代码调用摄像头 1 新建C 文件 此组件挂在一个物体上 可以是空物体或者camera 2 新建一个plane用于显示图像 利用该gameobject
  • 人脸识别:coco loss-Rethinking Feature Discrimination and Polymerization for Large-scale Recognition

    nips的一篇做分类和识别的工作 其中在人脸识别任务上也做了实验 Rethinking Feature Discrimination and Polymerization for Large scale Recognition Yu Liu
  • 设计模式:适配器模式

    适配器模式 即Adapter模式 又叫包装器Wrapper 用于改变已有类的接口形式 它可以将某个类的接口转换成客户端期望的另一个接口 主要目的是实现兼容性 让原本因接口不匹配不能一起工作的两个类可以协同工作 比如正常的电压是220v 插座
  • 【Kubernetes资源篇】StatefulSet无状态服务管理入门实战详解

    文章目录 一 StatefulSet理论知识 1 StatefulSet Pod控制器特性 2 什么是有状态服务和无状态服务 3 Deployment和StatefulSet区别 二 案例 StatefulSet资源实战演示 1 创建WEB
  • 解决CQ-HTTP无法远程登录的问题

    解决CQ HTTP无法远程登录的问题 前言 2022 6 3 第一步 准备 第二步 配置两端的go cqhttp 第三步 正文 前言 2022 6 3 相信自从酷Q无了后 很多人都了解到了go cqhttp这一优秀的qq机器人插件 但是在服
  • Django框架之搭建虚拟环境

    1 建立虚拟环境 pip install virtualenv 2 打开E盘创建文件夹名字为 aikun 3 进入文件夹中 shift 右击 打开Powershell 建立虚拟环境 4 输入 python m venv aikun env
  • HBase异常 -- KeeperErrorCode = ConnectionLoss for /hbase/hbaseid(单机)

    环境信息 虚拟机版本 centos7 HBase版本1 3 3 Hadoop版本 2 6 4 Zookeeper版本 3 4 5 异常信息 ERROR main zookeeper RecoverableZooKeeper ZooKeepe
  • AD域中组织单位和组的区别

    组和组织单元有很大的不同 组主要用于权限设置 而组织单元则主要用于网络构建 另外 组织单元只表示单个域中的对象集合 可包括组对象 而组可以包含用户 计算机 本地服务器上的共享资源 单个域 域目录树或目录林 组织单位是ou 组是group 前
  • GANs:生成对抗网络系列及应用

    GANs Goodfellow和Bengio等人发表在NIPS 2014年的文章Generative Adversarial Network是生成对抗网络的开创文章 论文思想启发自博弈论中的二人零和博弈 在二人零和博弈中 两位博弈放的利益之
  • 显示生成连续大小写字母

    9 生成连续大小写字母 package array 显示生成连续字母 public class array4 public static void main String args TODO Auto generated method st
  • java实现分页功能_Java实现简单的分页功能

    本文实例为大家分享了Java实现分页功能的具体代码 供大家参考 具体内容如下 不用根据改变SQL的形式去查询 直接查询所有的数据 根据页码自动显示数据 分页对象 public class PageUtils implements Seria
  • windows知识系列:硬软连接

    总结 创建硬连接 mklink H link 要关联的文件夹 创建软连接 mklink D link 要关联的文件夹 参考 硬 软连接 以及在windows中的用法
  • OPENCV4学习代码-Mat类构造与赋值

    代码清单2 4 默认构造函数使用方式 cv Mat Mat 代码清单2 5 利用矩阵尺寸和类型参数构造Mat类 cv Mat Mat int rows int cols int type 代码清单2 6 用Size 结构构造Mat类 cv
  • 华为机考笔记之字符串以水仙花规则拆分

    题目 一 输入一组字符串 求字符串分组后 每组的和为水仙花数 注 水仙花数是一个三位数 其个位 十位 百位的立次方 的和等于自身 如 371 3 3 7 3 1 1 1 如果无法找到该分组 返回0 2 找到该分组 切分组不唯一 返回 1 3
  • js 每隔 10 秒钟 运行一次,发送一个 ajax 请求

    每隔 10 秒钟 运行一次 发送一个 ajax 请求 function runEvery10Sec 1000 10 10 秒钟 setTimeout runEvery10Sec 1000 10 ajax dataType json type
  • jQuery取得select选中的值

    jQuery取得select选中的值 本来以为jQuery select1 val 是取得选中的值 那么jQuery select1 text 就是取得的文本 这是不正确的 正确做法是 jQuery select1 option selec
  • Qt中的单例模式:实现一个单例的界面类

    文章目录 前言 一 什么是单例模式 二 单例模式的优缺点及使用场景 三 Qt中单例类的创建 四 单例类的使用 测试 总结 前言 本文主要讲述了使用加锁的懒汉式来实现单例 文中示例将一个界面类修改为单例类 并在主界面获取多次该类的实例来进行测
  • 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数

    统计一个字符串中大写字母字符 小写字母字符 数字字符出现的次数 不考虑其他字符 1 需求 统计一个字符串中大写字母字符 小写字母字符 数字字符出现的次数 不考虑其他字符 举例 Hello123World 结果 大写字符 2个 小写字符 8个
  • IDEA中常用的插件

    目录 Free MyBatis plugin codehelper generator grep console Translation Alibaba Java Coding Guidelines CamelCase GenerateAl
  • unordered_map的哈希HASH重载——举例unordered_map与pair联合使用

    有些时候 为了图省力 我们没准会这样的调用一个函数 unordered map lt pair