Реализация хеш-таблицы для Delphi 5 - PullRequest
9 голосов
/ 07 октября 2008

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

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

Tks

Ответы [ 9 ]

10 голосов
/ 07 октября 2008

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

3 голосов
/ 07 октября 2008

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

3 голосов
/ 07 октября 2008

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

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

2 голосов
1 голос
/ 07 октября 2008

Можно попробовать поискать в Кодерах .
Здесь у вас есть простая реализация ( проект Winjab ) или this из JCL .

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

0 голосов
/ 18 августа 2009

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

0 голосов
/ 10 ноября 2008

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

Хорошая хеш-функция от Боба Дженкинса, читайте его статью здесь .

Этот алгоритм был недавно улучшен для случаев, когда вход имеет размер DWord ( См. Его C-версию здесь ). Эта версия быстрее и приводит к двум 32-битным хэш-значениям вместо одного. (Это второе хеш-значение можно использовать, например, для ускорения выбора в корзине.)

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

0 голосов
/ 24 октября 2008

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

0 голосов
/ 09 октября 2008

Питер Белоу только что опубликовал переделку того, что он сделал с новыми группами Embarcadero в public.attachments. Что-то есть под его профилем на сайте CodeGear по адресу http://cc.codegear.com/Item/24825, что описывает это.

...