2008-10-07 156 views
9

你知道德尔福5的一个好的免费散列表实现吗?德尔福5的散列表实现

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

韩国社交协会

回答

10

您还可以查看开源/原商业TurboPower SysTools。不知道它有多少更新。 Julian Bucknall曾经推荐过他的EZDSL library,尽管当时他还在为TurboPower工作,并且正在维护/更新。

3

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

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

+0

我已经使用了EZDSL多年的收缩包装应用程序,代码非常好。良好的性能,不用担心内存泄漏。 – 2011-08-30 17:48:16

3

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

0

结帐DeCAL,其中包括散列表和更多的数据结构。

0

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

一个不错的是来自Bob Jenkins,read his paper here的散列函数。

对于输入为DWord大小(See the C-version of it here)的情况,最近对此算法进行了改进。这个版本更快,并且产生两个32位散列值而不是一个。 (例如,这第二个散列值可用于加快桶内选择。)

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

0

RBS Antidot是非常好的容器库(包括基于散列的UnsortedMap)。