Delphi 5 の優れた無料の Hashtable 実装を知っていますか?
Hastable で大量のデータを整理する必要があり、Web で利用可能なほとんどの実装で見つかったメモリ リークの問題が少し心配です。
Tks
Delphi 5 の優れた無料の Hashtable 実装を知っていますか?
Hastable で大量のデータを整理する必要があり、Web で利用可能なほとんどの実装で見つかったメモリ リークの問題が少し心配です。
Tks
また、オープンソース/以前は商用のTurboPower SysToolsも確認できます。どれくらい更新されているかわかりません。ある時点で、Julian Bucknall は彼のEZDSL ライブラリよりもそれを推奨しましたが、それは彼がまだ TurboPower で働いていて、それが維持/更新されていたときのことです。
私のGpStringHashを試すことができます。メモリ リークがないことを保証しますが、文字列でのみ機能します。D5でも動くと思います。
EZDSL はハッシュ テーブルを含むデータ構造のライブラリで、TurboPower と DevExpress の Julian Bucknall によって書かれました... 私はそれらを使用したことはありませんが、この人のコードには大きな期待を寄せています。
Kodersで検索してみてください。
ここに、単純な実装 ( Winjab プロジェクト)、またはJCLからのthisがあります。
注: コードを使用する前に、コードのライセンスを参照してください。
チェックアウトDeCAL。ハッシュテーブルとその他のデータ構造が含まれています。
実際のハッシュテーブルの実装とは別に、使用されているハッシュ関数自体も重要です。
良いものは、Bob Jenkins のハッシュ関数です。彼の論文はこちら で読むことができます。
このアルゴリズムは、入力が DWord サイズの場合に最近改善されました ( C バージョンはこちらを参照してください)。このバージョンは高速で、1 つではなく 2 つの 32 ビット ハッシュ値になります。(この 2 番目のハッシュ値は、たとえば、バケット内の選択を高速化するために使用できます。)
興味のある方は、Delphi の翻訳をここに貼り付けていただけますか? (約 170 行のコードです。)
Peter Below は、Embarcadero の新しいグループに対して行ったことのリワークを public.attachments に投稿しました。CodeGear サイト ( http://cc.codegear.com/Item/24825 ) の彼のプロフィールの下に、それを説明する何かがあります。