2008-10-07 3 views
9

Знаете ли вы хорошее и бесплатное дополнение Hashtable для Delphi 5?Реализация Hashtable для Delphi 5

Мне нужно организовать огромное количество данных в hastable, и я немного обеспокоен проблемами утечки памяти, которые я нашел в большинстве доступных реализаций в Интернете.

Tks

ответ

10

Вы также можете ознакомиться с открытым исходным кодом/ранее коммерческим TurboPower SysTools. Не уверен, насколько он обновляется. В какой-то момент Джулиан Бакналл порекомендовал его по поводу своего EZDSL library, хотя он вернулся, когда он все еще работал на мех TurboPower, и его поддерживали/обновляли.

2
+0

Мы попробовали реализацию, предоставленную benya.com, но у нас возникли проблемы с утечкой памяти. Вы пробовали второй? Tnks для ответа – Gustavo 2008-10-07 16:17:41

+1

Нет. Я использую TList, TStringList или TClientDataSet + BinarySearch в случае огромного количества данных. – zaca 2008-10-07 17:56:50

1

Вы можете попытаться найти в Koders.
Here у вас есть простая реализация (Winjab project), или this от JCL.

ПРИМЕЧАНИЕ. Перед использованием используйте лицензию кодов.

3

EZDSL - это библиотека структур данных, в том числе хеш-таблица, написанная Джулианом Бакналом из TurboPower и DevExpress ... Я их не использовал, но у меня были бы большие надежды на код этого парня.

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

+0

Я использовал EZDSL в течение многих лет с термоусадочными обернутыми приложениями, и код очень хороший. Хорошая производительность, никаких проблем с утечками памяти. – 2011-08-30 17:48:16

3

Вы можете попробовать мой GpStringHash. Гарантирует отсутствие утечек памяти, но работает только со строками. I думаю он должен работать в D5.

0

Peter Below только что опубликовал переделку того, что он сделал с новыми группами Embarcadero в публичных целях. Что-то под его профилем на сайте CodeGear в http://cc.codegear.com/Item/24825 taht описывает это.

0

Оформить заказ DeCAL, который включает в себя хеш-таблицы и другие структуры данных.

0

Помимо собственно реализации хеш-таблицы важна также используемая функция хэш-функции.

Хорошая функция хеша от Боба Дженкинса, read his paper here.

Этот алгоритм был недавно усовершенствован для случаев, когда вход имеет размер DWord (See the C-version of it here). Эта версия работает быстрее и приводит к двум 32-битным хеш-значениям вместо одного. (Это второе значение хэширования можно было бы использовать, например, для ускорения выбора в ковше.)

Для тех, кого это интересует, я могу вставить здесь перевод Delphi? (Это около 170 строк кода.)

0

RBS Antidot - очень хорошая библиотека контейнеров (включая UnsortedMap на основе хешей).

Смежные вопросы