Форум программистов, компьютерный форум CyberForum.ru

Хеш строки - C++

Восстановить пароль Регистрация
 
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
05.09.2012, 00:43     Хеш строки #1
Как можно получить хеш строки на C++ с использованием только стандартных библиотек? Думал так:
C++
1
2
3
4
5
6
7
8
9
unsigned long long hash(char *str,size_t size)
{
    int seed = 31 //abcd...
    unsigned long long result = 0;
    for (size_t idx=0;idx<size;idx++) {
        result = result + pow(double(seed),double(i))*s[i];
    }
    return result;
}
Но тут становиться ясно, что когда то случится переполнение типа и случится оно как всегда в самый плохой момент. Есть идея сохранять кеш не в __int64, а в строку, но я не могу въехать как это сделать.

Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2012, 00:43     Хеш строки
Посмотрите здесь:

C++ хеш функции
Хеш-таблица C++
C++ Хеш Таблица
хеш-таблица C++
C++ хеш-таблицы
Хеш таблицы C++
C++ хеш таблица
Хеш функция C++
Хеш-таблица C++
Хеш-таблица C++
Хеш-таблица C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PSIAlt
 Аватар для PSIAlt
86 / 86 / 8
Регистрация: 19.06.2012
Сообщений: 245
05.09.2012, 00:47     Хеш строки #2
Возьми алгоритм типа DJB2 и не парься. Он шустрый и хешит норм вроде.
http://www.cse.yorku.ca/~oz/hash.html
Yandex
Объявления
05.09.2012, 00:47     Хеш строки
Ответ Создать тему
Опции темы

Текущее время: 17:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru