Хеши в Дельфи

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Какие классы выполняют роль хешей (множества и ассоциативные массивы) в Дельфи?
2B OR NOT(2B) = FF
Zroman
Сообщения: 75
Зарегистрирован: 20 апр 2005, 19:23
Откуда: Киев

Если я правильно понимаю что такое хеш, то попробуй создать StringList, и обращайся потом к величине по имени как к StringList.values['<имя величины>'].
Например:
StringList.values['ValName']:='value';
приведёт к появления в стринглисте строки "ValName=value"
А обратиться к величине под именем ValName можно так:
x:=StringList.values['ValName'];
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

А если мне нужны ключи с типом integer? (К примеру)
2B OR NOT(2B) = FF
Zroman
Сообщения: 75
Зарегистрирован: 20 апр 2005, 19:23
Откуда: Киев

Тогда не знаю. Попробуй приводить ключи функцией IntToStr.
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Попробуй приводить ключи функцией IntToStr.
Не мой стиль.
Ну Наиль, Aik... гуры... ответьте... Должно же быть
2B OR NOT(2B) = FF
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Absurd, как я могу ответить, если я не знаю? :)
Могу предложить только такой вариант
Даже самый дурацкий замысел можно воплотить мастерски
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

А если создавать класс потомок TCollection?
С уважением, Lost Angel...
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

1) Потом придется стыковать свой велосипед с чужими велосипедами
2) Этот код мне потом придется поддерживать
3) Даже в таком угробище как С++ есть std::hash_map<KeyType, ValueType, HashFunc, Comparator>
2B OR NOT(2B) = FF
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Absurd, нет в Дельфи универсального хэша, увы :( Есть THashedStringList, но он, как следует из имени, работает только со строками в качестве ключей.

А почему нет - понятно: язык сильно типизированный, нет конструктивов подобных шаблонам. Т.е. для каждого типа ключей придется делать отдельный класс.
Ответить