【发布时间】:2017-08-26 13:40:57
【问题描述】:
我需要将二维坐标作为键存储在 std::unordered_map 中。 我知道坐标的每个分量不会超过 16 位。
像这样将坐标对 (x,y) 合并到 uint32_t 是不好的做法
uint32_t coordinate_id = (x << 16) | y;
并使用坐标id 作为地图的“散列”? 还是我应该使用专用的哈希函数来计算密钥? 如果我没有遗漏任何东西,上面提供的方法不会导致任何冲突。
【问题讨论】:
-
您打算将这些
coordinate_ids 用作地图的键,还是将它们的计算用作哈希函数?你能用地图的定义和插入示例来澄清一下吗?
标签: c++ hash hashmap unordered-map