Реализация хэш-таблицы для Delphi 5
-
05-07-2019 - |
Вопрос
Знаете ли вы хорошую и бесплатную реализацию хэш - таблицы для Delphi 5 ?
Мне нужно организовать огромное количество данных в hastable, и я немного обеспокоен проблемами с утечкой памяти, которые я обнаружил в большинстве доступных реализаций в Интернете.
Ткс
Решение
Вы также можете ознакомиться с открытым исходным кодом / ранее коммерческим Системы турбонаддува.Не уверен, насколько сильно он обновляется.В какой - то момент Джулиан Бакнолл порекомендовал его своему Библиотека EZDSL, хотя это было в те времена, когда он все еще работал с турбовинтовой установкой и она обслуживалась / обновлялась.
Другие советы
Вы можете попробовать мой GpStringHash - строка.Гарантировано отсутствие утечек памяти, но работает только со строками.Я подумай это должно работать в D5.
EZDSL - это библиотека структур данных, включая хэш-таблицу, написанная Джулианом Бакноллом из TurboPower и DevExpress...Я ими не пользовался, но у меня были бы большие ожидания от кода этого парня.
Вы можете попробовать выполнить поиск в Кодеры.
Здесь у вас есть простая реализация (Проект Winjab), или это От JCL.
ПРИМЕЧАНИЕ:Ознакомьтесь с лицензией codes, прежде чем использовать ее.
Питер Белоу только что опубликовал переработку того, что он сделал для Embarcadero newgroups в public.attachments.Там есть кое-что под его профилем на сайте CodeGear по адресу http://cc.codegear.com/Item/24825 тахт описывает это.
Оформить покупку Наклейка, который включает в себя хэш-таблицы и другие структуры данных.
Помимо фактической реализации хэш-таблицы, важна и сама используемая хэш-функция.
Хорошая из них - это хэш-функция от Боба Дженкинса, прочтите его статью здесь.
Этот алгоритм был недавно усовершенствован для случаев, когда входные данные имеют размер DWord (Смотрите его C-версию здесь).Эта версия работает быстрее и выдает два 32-битных хэш-значения вместо одного.(Это второе хэш-значение может быть использовано, например, для ускорения выбора в корзине.)
Для тех, кому интересно, я мог бы вставить перевод Delphi сюда?(Это около 170 строк кода.)
Антидот RBS это очень хорошая библиотека контейнеров (включая несортированную карту на основе хэша).