9

你知道 Delphi 5 的一个好的和免费的 Hashtable 实现吗?

我需要在一个 hastable 中组织大量数据,我有点担心我在网络上大多数可用的实现中发现的内存泄漏问题。

Tks

4

8 回答 8

10

您还可以查看开源/以前商业的TurboPower SysTools。不知道更新了多少。Julian Bucknall 曾在他的EZDSL 库中推荐过它,尽管那是在他还在使用 TurboPower 并且正在维护/更新的时候。

于 2008-10-07T19:09:34.307 回答
3

EZDSL 是一个数据结构库,包括一个哈希表,由 TurboPower 和 DevExpress 的 Julian Bucknall 编写……我没有使用它们,但我对这家伙的代码有很高的期望。

http://www.boyet.com/FixedArticles/EZDSL.html

于 2008-10-07T16:32:31.613 回答
3

你可以试试我的GpStringHash。保证没有内存泄漏,但仅适用于字符串。我认为它应该在 D5 中工作。

于 2008-10-07T16:55:05.733 回答
1

您可以尝试在Koders中搜索。
在这里,您有一个简单的实现(Winjab项目),或者来自JCL

注意:使用前请参阅代码许可。

于 2008-10-07T16:06:30.870 回答
0

Peter below 刚刚在 public.attachments 中发布了他对 Embarcadero 新组所做的一些修改。在 CodeGear 网站http://cc.codegear.com/Item/24825上他的个人资料中有一些东西描述了它。

于 2008-10-08T22:52:33.030 回答
0

Checkout DeCAL,其中包括哈希表和更多数据结构。

于 2008-10-24T13:08:56.857 回答
0

除了实际的哈希表实现之外,使用的哈希函数本身也很重要。

Bob Jenkins 的哈希函数是一个不错的选择,请在此处阅读他的论文

该算法最近针对输入为双字大小的情况进行了改进(请参见此处的 C 版本)。这个版本更快,并且产生两个 32 位散列值而不是一个。(例如,第二个哈希值可用于加速桶内选择。)

对于那些感兴趣的人,我可以在这里粘贴 Delphi 翻译吗?(大约 170 行代码。)

于 2008-11-10T16:07:01.143 回答