Domanda

Conosci un'implementazione Hashtable buona e gratuita per Delphi 5?

Devo organizzare un'enorme quantità di dati in un hastable e sono un po 'preoccupato per i problemi di perdita di memoria che ho riscontrato nella maggior parte delle implementazioni disponibili sul web.

Tks

È stato utile?

Soluzione

Puoi anche dare un'occhiata all'open source / precedentemente commerciale TurboPower SysTools . Non sono sicuro di quanto viene aggiornato. A un certo punto Julian Bucknall lo ha raccomandato sulla sua libreria EZDSL , anche se era tornato quando era ancora ha funzionato con TurboPower ed è stato mantenuto / aggiornato.

Altri suggerimenti

Puoi provare il mio GpStringHash . Garantito senza perdite di memoria, ma funziona solo con le stringhe. penso dovrebbe funzionare in D5.

EZDSL è una libreria di strutture di dati, inclusa una tabella hash, scritta da Julian Bucknall di TurboPower e DevExpress ... Non li ho usati, ma avrei grandi aspettative per il codice di questo ragazzo.

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

Puoi provare a cercare in Koders .
Qui hai un'implementazione semplice ( progetto Winjab ) o this da JCL .

NOTA: consultare la licenza dei codici prima di utilizzarla.

Peter Below ha appena pubblicato una rielaborazione di qualcosa che ha fatto ai nuovi gruppi di Embarcadero nei public.attachments. C'è qualcosa sotto il suo profilo sul sito CodeGear all'indirizzo http://cc.codegear.com/Item/24825 che lo descrive.

Acquista DeCAL , che include tabelle hash e più strutture di dati.

Oltre all'attuale implementazione della tabella hash, anche la funzione hash utilizzata è importante.

Una buona è una funzione hash di Bob Jenkins, leggi il suo documento qui .

Di recente questo algoritmo è stato migliorato per i casi in cui l'input è di dimensioni DWord ( Vedi la C -version qui ). Questa versione è più veloce e genera due valori hash a 32 bit anziché uno. (Ad esempio, questo secondo valore hash potrebbe essere utilizzato per velocizzare la selezione in-bucket.)

Per chi fosse interessato, potrei incollare la traduzione Delphi qui? (Sono circa 170 righe di codice.)

RBS Antidot è un'ottima libreria di contenitori (inclusa UnsortedMap basata su hash) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top