Предыдущий пост -
Следующий пост -

Hash повторным вызовом.

Рубрика: C++, Дата: 27 June, 2013, Автор:

Код хэш функции имеет обыкновение следовать общей схеме – в цикле получают новые данные и хэшируют их. Определите Hash (параграф 17.6.2.3), который получает данные повторяющимся вызовом функции, которую пользователь предоставляет для каждого типа ключа. Например:

size_t res=0;
while(size_t v=hash(key)) res=(res<<3)^v;

Здесь пользователь может определить hash(K) для каждого типа K, подлежащего хэшированию.

мне реально задолбало разбирать класс hash_map, делать эту задачку в реале практически не будем, просто ее рассмотрим теоретически. Да я сразу подумал, что здесь это разные функции hash() и Hash() и что нам просто из Hash() нужно вызывать функции hash() сделать как бы из специализацию, в принципе можно и так сделать, в сомом классе Hash создать специализацию для функции hash() для разных ключей и уже из Hash() вызывать соответствующие функции, смотря какой тип ключа. Ну в общем отакой примерчик.

Да а скорее всего тут другой вариант нужен, функции эти одинаковые просто они ошиблись видимо не hash() а Hash() нужно написать было. Просто вызов одной и той же функции, а ну там видно что как бы рекурсия что ли должна быть в цикле, что бы в итоге функция ключа вернула ложное значение и мы вышли из основного цикла, ну это не рекурсия это просто вызов функции для проверки верности условия.

Неохота разбираться, честно меня уже кумарят эти хэши, ну фиг с ним, мне все это уже надоело, пара завязывать с этими hash_map-ами.

[youtube]http://www.youtube.com/watch?v=YrdNfX7W38U[/youtube]

rss