Я создал отдельный файл JS, импортирующий все внешние компоненты, а затем динамически отправлял имя компонента в подпорках, чтобы выбрать его из этого файла, также динамическую загрузку. не будет работать, когда значение, переданное в require, вычисляется во время выполнения.
Можно также проверить открытый исходный код / раньше коммерческий TurboPower SysTools. Не уверенный, насколько это обновляется. Однажды Julian Bucknall рекомендовал это по своей библиотеке EZDSL, хотя это вернулось, когда он все еще работал мех TurboPower, и это сохранялось / обновленный.
Можно попробовать мой GpStringHash. Гарантируемый никакие утечки памяти, но работы только со строками. Я думаю, что это должно работать в D5.
Можно Попытаться искать в Koders.
Здесь у Вас есть простая реализация (проект Winjab), или это от JCL.
Примечание: См. лицензию кодов перед использованием это.
Peter Ниже просто отправленного переделывание чего-то он сделал к Причалу newgroups в public.attachments. Существует что-то под его профилем на сайте CodeGear по http://cc.codegear.com/Item/24825, TAHT описывает его.
EZDSL является библиотекой структур данных, включая хеш-таблицу, записанную Julian Bucknall из TurboPower и DevExpress... Я не использовал их, но у меня были бы большие ожидания относительно кода этого парня.
ПЕРЕВОДНАЯ КАРТИНКА контроля, которая включает хеш-таблицы и больше структур данных.
Кроме фактической реализации хеш-таблицы, хеш-функция, используемая сама, также важна.
Хороший является хеш-функцией от Bob Jenkins, прочитайте его газету здесь.
Этот алгоритм был недавно улучшен для случаев, где вход DWord-измерен (См. C-версию его здесь). Эта версия быстрее, и приводит к двум 32-разрядным значениям хэш-функции вместо одного. (Это второе значение хэш-функции могло использоваться для ускорения выбора в блоке, например.)
Для заинтересованных, я мог вставить перевод Delphi здесь? (Это - приблизительно 170 строк кода.)
RBS Antidot - очень хорошая библиотека контейнеров (включая UnsortedMap на основе хэшей).