私のハッシュ関数は次のとおりです。
unsigned int Game::xorHash(const string &s)
{
unsigned int h = 0;
for (unsigned int i = 0; i < s.length(); i++ )
h ^= s.c_str()[i];
return h;
}
約 160,000 個の文字列を、1 つあたり約 3 ~ 10 個の文字列を含むテーブルに分散しようとしています。私はかなり迷っています。
上記の実装は非常にトップヘビーです。私の任務では、少なくとも 500 個のバケットが必要ですが、それ以上の数でも十分です。
誰にも提案/方向性はありますか? それは大歓迎です。