2008-10-07 144 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)。