【发布时间】:2016-10-05 20:58:23
【问题描述】:
我有一小组正整数(大约 10 个数字),每个都是 2 的幂。
如何尽快将每个数字映射到其他数字?
这里有两种可行的解决方案,但考虑到问题的简单性(以及我拥有的键数),它们似乎都显得过于缓慢(我错了吗?):
- 使用
std::map - Compute the log-base-2 of the key(32 位数字 7 次操作,64 位数字 9 次)然后用它在数组中查找对应的值
完全避免映射问题,例如,将我的整数替换为将成对组合在一起的结构可能是 最快 解决方案,但它会使我的大部分代码复杂化,所以我不是愿意这样做。
【问题讨论】:
-
你能把转换表贴上去吗(假设映射不是任意的)?可能有一个聪明的小把戏。
-
@Bathsheba 不幸的是,键映射到的值是随机生成的数字。
标签: c++ data-structures hashmap