您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

C++ 使用unordered_map, pair作为key

unordered_map与hash_map相似
但hash_map不属于STL标准库,经常遇到报错,提示用unordered_map进行替换
在使用unordered_map时,有时需要用pair作为key,但是会报错
unordered_map中没有针对pair的hash函数,需要手动传入一个hash函数。hash函数的简单实现如下:

struct hash_pair { 
    template <class T1, class T2> 
    size_t operator()(const pair<T1, T2>& p) const
    { 
        auto hash1 = hash<T1>{}(p.first); 
        auto hash2 = hash<T2>{}(p.second); 
        return hash1 ^ hash2; 
    } 
}; 

使用时,再unorder_map前加入代码块。在声明unorder_map时把这个hash函数传进去即可:

unordered_map<pair<string, string>, int, hash_pair> map_g;

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进