perfect hash container
От: kulentsov  
Дата: 26.07.03 13:48
Оценка:
существуют ли готовые реализации subj? Не генераторы, дающие на выходе сишный код, а именно контейнеры, типа контейнеров STL?
Re: perfect hash container
От: Павел Кузнецов  
Дата: 26.07.03 14:22
Оценка:
Здравствуйте, kulentsov, Вы писали:

k> существуют ли готовые реализации subj? Не генераторы, дающие на

k> выходе сишный код, а именно контейнеры, типа контейнеров STL?

Мне кажется, ты смешиваешь два понятия: алгоритм получения хэша (perfect hash) и использование
полученного хэша для организации контейнера (hash container). Первое обычно реализуется генерацией
функции/таблицы по набору данных. Второе — реализуется в общем виде вне зависимости от того, как
планируется получать значения хэшей. Существуют как бесплатные реализации соответствующих
контейнеров hash_set, hash_map, hash_multiset и hash_multimap (например, www.stlport.org),
так и коммерческие (например, с VC++7 и старше поставляется библиотека от Dinkumware, включающая
свой вариант упомянутых контейнеров). Все эти контейнеры предоставляют возможность подмены функции
генерации хэша; т.е. при желании им можно подсунуть и какой-нибудь вариант так называемого
perfect hash.
Posted via RSDN NNTP Server 1.6 RC1
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[2]: perfect hash container
От: Sergeem Израиль  
Дата: 27.07.03 11:57
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Здравствуйте, kulentsov, Вы писали:


k>> существуют ли готовые реализации subj? Не генераторы, дающие на

k>> выходе сишный код, а именно контейнеры, типа контейнеров STL?

ПК>Мне кажется, ты смешиваешь два понятия: алгоритм получения хэша (perfect hash) и использование

ПК>полученного хэша для организации контейнера (hash container). Первое обычно реализуется генерацией
ПК>функции/таблицы по набору данных.

...

Действительно, существуют ли реализации perfect hash,
строящие хэш-функцию в рантайме, а не на стадии компиляции?
Я скачал статью, и уже думаю сам что-то сваять, но если
если уже есть что-то готовое, то почему бы не заюзать?
Serge.

Hасколько проще была бы жизнь, если бы она была в исходниках.
Re[3]: perfect hash container
От: kulentsov  
Дата: 28.07.03 09:55
Оценка:
S>Действительно, существуют ли реализации perfect hash,
S>строящие хэш-функцию в рантайме, а не на стадии компиляции?
S>Я скачал статью, и уже думаю сам что-то сваять, но если
S>если уже есть что-то готовое, то почему бы не заюзать?
Вот-вот. Кажется, у тебя те же проблемы? Что хешируешь? Я — словарь Зализняка.
Re[2]: perfect hash container
От: kulentsov  
Дата: 28.07.03 10:02
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

k>> существуют ли готовые реализации subj? Не генераторы, дающие на

k>> выходе сишный код, а именно контейнеры, типа контейнеров STL?

ПК>Мне кажется, ты смешиваешь два понятия: алгоритм получения хэша (perfect hash) и использование

ПК>полученного хэша для организации контейнера (hash container). Первое обычно реализуется генерацией
ПК>функции/таблицы по набору данных. Второе — реализуется в общем виде вне зависимости от того, как
Вот именно, я _хочу_ смешать их. Чтобы контейнер получал на входе набор данных (в любом другом контейнере), генерил идеальный хеш, и сразу строил хеш-таблицу для конкретно этого набора. И чтобы эту хрень можно было без проблем сериализовать в файл, а потом восстановить. По понятным причинам.
Нужно это для обработки больших массивов данных, когда время начальной подготовки данных не имеет значения, но важна последующая быстрая работа.

ПК>планируется получать значения хэшей. Существуют как бесплатные реализации соответствующих

ПК>контейнеров hash_set, hash_map, hash_multiset и hash_multimap (например, www.stlport.org),
ПК>так и коммерческие (например, с VC++7 и старше поставляется библиотека от Dinkumware, включающая
ПК>свой вариант упомянутых контейнеров). Все эти контейнеры предоставляют возможность подмены функции
ПК>генерации хэша; т.е. при желании им можно подсунуть и какой-нибудь вариант так называемого
ПК>perfect hash.
Стотрел я hash_map. Там есть insert(), а в Perfect Hash не может быть insert(). Потому что по нему придется все перестраивать с нуля.
Re[3]: perfect hash container
От: Павел Кузнецов  
Дата: 28.07.03 10:33
Оценка:
Здравствуйте, kulentsov, Вы писали:

k> Стотрел я hash_map. Там есть insert(), а в Perfect Hash не может

k> быть insert(). Потому что по нему придется все перестраивать с нуля.

Дык, и я о чем: вместо попыток скрещивания ужа с ежом инициализируй таблицу для
хэширования. Эту таблицу используй в объекте hash, которым параметризуется контейнер —
и все будет хорошо.
Posted via RSDN NNTP Server 1.6 RC1
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: perfect hash container
От: kulentsov  
Дата: 29.07.03 13:34
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Здравствуйте, kulentsov, Вы писали:


k>> Стотрел я hash_map. Там есть insert(), а в Perfect Hash не может

k>> быть insert(). Потому что по нему придется все перестраивать с нуля.

ПК>Дык, и я о чем: вместо попыток скрещивания ужа с ежом инициализируй таблицу для

ПК>хэширования. Эту таблицу используй в объекте hash, которым параметризуется контейнер —
ПК>и все будет хорошо.

Не, всё будет хорошо, когда я этот контейнер сам напишу.
Perfect hash слишком сильно отличается от обычной хеш-таблицы, чтобы использовать этот контейнер. Тем более что собственно по таблице там делать нечего, основной код — это генератор.
Re[5]: perfect hash container
От: Sergeem Израиль  
Дата: 29.07.03 14:51
Оценка:
Здравствуйте, kulentsov, Вы писали:

K>Здравствуйте, Павел Кузнецов, Вы писали:


ПК>>Здравствуйте, kulentsov, Вы писали:


k>>> Стотрел я hash_map. Там есть insert(), а в Perfect Hash не может

k>>> быть insert(). Потому что по нему придется все перестраивать с нуля.

ПК>>Дык, и я о чем: вместо попыток скрещивания ужа с ежом инициализируй таблицу для

ПК>>хэширования. Эту таблицу используй в объекте hash, которым параметризуется контейнер —
ПК>>и все будет хорошо.

K> Не, всё будет хорошо, когда я этот контейнер сам напишу.

K> Perfect hash слишком сильно отличается от обычной хеш-таблицы, чтобы использовать этот контейнер. Тем более что собственно по таблице там делать нечего, основной код — это генератор.

Если напишешь, поделись сырцом с общественностью
Serge.

Hасколько проще была бы жизнь, если бы она была в исходниках.
Re[6]: perfect hash container
От: kulentsov  
Дата: 29.07.03 14:54
Оценка:
S>Если напишешь, поделись сырцом с общественностью
"Ну почему я не удивлен?"

Ты так и не раскололся, что хешируешь. А ведь от количества и типа данных и генератор выбирать надо...
Re[7]: perfect hash container
От: Sergeem Израиль  
Дата: 31.07.03 07:03
Оценка:
Здравствуйте, kulentsov, Вы писали:

S>>Если напишешь, поделись сырцом с общественностью

K> "Ну почему я не удивлен?"

K> Ты так и не раскололся, что хешируешь. А ведь от количества и типа данных и генератор выбирать надо...


Хочется что-нить универсальное. Чтобы по набору данных генератор строился автоматицки.
Serge.

Hасколько проще была бы жизнь, если бы она была в исходниках.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.