【其他】pair 存入 gp_hash_table 的问题
std::tr1::hash 并没有给 pair 定义哈希策略,所以你得特化模板自己写一个:
template <>
struct tr1::hash<pair<int, int>> {
size_t operator()(pair<int, int> x) const {
return x.fi ^ x.se;
}
};
理论上返回什么都是对的,尽量选择冲突小的方式就行。
同理,__int128
的哈希你甚至可以这么写:
template <>
struct tr1::hash<__int128> {
size_t operator()(__int128 x) const {
return x;
}
};
但是捏对于 std::unordered_map
不能这么写,大概是因为不允许你特化标准库的模板。然后就得写个这种玩意:
struct pairhash {
size_t operator()(dhash x) const {
return x.first ^ x.second;
}
};
unordered_map<dhash, int, pairhash> pp;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-03-28 Trie树
2020-03-28 递推