相关疑难解决方法(0)

H ++中的Hashtable?

每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)相关联的一些数据时,我通常使用C++ stdlib映射.stdlib映射实现基于树,它提供比标准数组或stdlib向量更好的性能(O(log n)).

我的问题是,你知道任何C++"标准"哈希表实现提供更好的性能(O(1))吗?类似于Java API中Hashtable类中可用的内容.

c++ performance complexity-theory hashtable map

55
推荐指数
2
解决办法
5万
查看次数

查找已知的整数键集

在我的环境中,Gperf 的性能始终低于 Judy 数组,我想知道是否有另一个专门为整数键构建的完美哈希库。我事先知道一组键,并且我想利用它来获得性能/尺寸优势。

有大约 1000 个键,并且检索不按顺序排列。密钥对都是整数。密钥是 32 位,检索的值是 8 位。尺寸是最重要的因素。

如果有一种方法可以针对整数键调整 Gperf,或者只是另一种方法,我也会洗耳恭听。:)

(旁注:...在输入这个问题时,我意识到二分搜索可能会更有效,而且我只是过度思考了这个问题。为了学习,我仍然想听听您的任何想法,尽管!)

编辑:键分布不均匀。大多数是在整个可能的范围内随机聚集的。

编辑 2:最坏情况的二进制搜索对我来说太慢了,所以我最终使用了这些键,直到我找到每个键可以使用 8 位来创建 256 个均匀分布的存储桶。我保存了每个桶的最小值和最大值(每个桶条目 24 位),并为密钥对创建了一个大的结构数组。与我在特定情况下测试的其他所有产品相比/更快且更小,所以我想我现在就采用它。:)

c algorithm

6
推荐指数
1
解决办法
2133
查看次数

标签 统计

algorithm ×1

c ×1

c++ ×1

complexity-theory ×1

hashtable ×1

map ×1

performance ×1