Delphi 5のハッシュテーブル実装
-
05-07-2019 - |
質問
Delphi 5の適切で無料のHashtable実装を知っていますか?
膨大な量のデータをhastableに整理する必要があり、Webで利用可能なほとんどの実装で見つかったメモリリークの問題について少し心配しています。
Tks
解決
また、オープンソース/以前の商用 TurboPower SysTools も確認できます。どれだけ更新されているかわかりません。ある時点で、Julian Bucknallは EZDSLライブラリよりもそれを推奨しましたが、まだ戻っていましたTurboPowerで動作し、メンテナンス/更新されていました。
他のヒント
私の GpStringHash を試すことができます。メモリリークがないことを保証しますが、文字列でのみ動作します。 D5でも機能すると思います 。
EZDSLは、TurboPowerおよびDevExpressのJulian Bucknallによって記述されたハッシュテーブルを含むデータ構造のライブラリです...私はそれらを使用していませんが、この男のコードには大きな期待があります。
Koders で検索できます。
ここに簡単な実装があります( Winjabプロジェクト)、または JCL 。
注:コードのライセンスを確認してから使用してください。
Peter Belowは、彼がしたことのリワークをpublic.attachmentsのEmbarcadero newgroupsに投稿しました。 CodeGearサイトの http://cc.codegear.com/Item/24825 <のプロファイルの下に何かがあります。 / a>それについて説明します。
チェックアウト DeCAL 。ハッシュテーブルとその他のデータ構造が含まれます。
実際のハッシュテーブルの実装とは別に、使用されているハッシュ関数自体も重要です。
良いものは、ボブジェンキンスのハッシュ関数です。ここで彼の論文を読む 。
このアルゴリズムは、入力がDWordサイズ( C -それのバージョン)。このバージョンはより高速で、1つではなく2つの32ビットハッシュ値になります。 (この2番目のハッシュ値は、たとえばバケット内の選択を高速化するために使用できます。)
興味のある人のために、Delphi翻訳をここに貼り付けることができますか? (約170行のコードです。)
RBS Antidot は非常に優れたコンテナーライブラリです(ハッシュベースのUnsortedMapを含む) 。