Реализация Hashtable для Delphi 5
вы знаете хороший и бесплатный хеш-таблица реализация для Delphi 5 ?
Мне нужно организовать огромное количество данных в hastable, и я немного беспокоюсь о проблемах с утечкой памяти, которые я нашел в большинстве доступных реализаций в интернете.
Tks
9 ответов
вы также можете проверить с открытым исходным кодом / ранее коммерческий SysTools Турбонаддува. Не уверен, насколько он обновляется. В один момент Джулиан Bucknall рекомендовал его за его библиотека EZDSL, хотя это было еще тогда, когда он все еще работал с меховой турбонаддувом, и он поддерживался / обновлялся.
вы можете попробовать мой GpStringHash. Гарантированное отсутствие утечек памяти, но работает только со строками. Я!--3-->думаю он должен работать в D5.
EZDSL-это библиотека структур данных, включая хэш-таблицу, написанную Джулианом Бакналлом из TurboPower и DevExpress... Я не использовал их, но у меня были бы большие ожидания для кода этого парня.
вы можете попробовать найти в Koders.
здесь у вас есть простая реализация (проект Winjab), или этой С JCL.
Примечание: см. лицензию кодов перед использованием его.
Питер ниже только что опубликовал переработку чего-то, что он сделал для новых групп Embarcadero в публике.вложения. Есть что-то под его профилем На сайте CodeGear по адресуhttp://cc.codegear.com/Item/24825 taht описывает это.
помимо фактической реализации хэш-таблицы, также важна сама используемая хэш-функция.
хорошим является хэш-функция от Боба Дженкинса,читайте его статью здесь.
этот алгоритм был недавно улучшен для случаев, когда вход имеет размер DWord (смотрите его C-версию здесь). Эта версия быстрее и приводит к двум 32-битным хэш-значениям вместо одного. (Это второе хэш-значение может быть использовано для ускорения например, выбор в ведре.)
для тех, кто заинтересован, я мог бы вставить Delphi-перевод здесь? (Это около 170 строк кода.)