文字列をintにハッシュするために、C++でハッシュ関数を探しています。私はCMapStringToPtrを使用しましたが、 "GetNextAssoc"という関数があり、キーを文字列として取り出すことができます。つまり、文字列を格納しなければならず、メモリが大量になります。 メモリが少なくなり、文字列を格納しない他のハッシュ関数はありますか?ハッシュ関数をC++で文字列をintに変換する
答えて
C++には、この目的のために組み込まれたハッシュ関数があります。これは、すべてのSTLハッシュコンテナで使用されます。
PS:あなたは、いくつかの値でMOD、ちょうど整数に追加し、その文字を通じてconst参照し、サイクルによって一つ一つの文字列を渡し、あまりにも自分自身を作ることができます:)
私は間違っているかもしれませんが、あなたのリンクはSGI拡張(SGI
半分と私は言うだろう。私はそれが拡張だと信じていますが、それがあなたのシステムになければ私は非常に驚くでしょう - それはほとんどどこにでもあります。 –
modによって何か価値があるとお考えですか? – dustinyourface
int hash(const string &key, int tableSize) {
int hashVal = 0;
for(int i = 0; i<key.length(); i++)
hashVal = 37*hashVal+key[i];
hashVal %= tableSize;
if(hashVal<0)
hashVal += tableSize;
return hashVal;
}
- 1. 数値の文字列をintベクトルに変換するC++
- 2. JavaScript文字列をハッシュ文字列に変換する
- 3. ハッシュ変換の文字列
- 4. C++/cliの文字列配列をint配列に変換
- 5. ハッシュ文字列をRGBカラーに変換
- 6. 文字列の数値をintに変換するには
- 7. int配列のC++ハッシュ関数
- 8. intを文字列から目的関数に変換する方法:例コード
- 9. C#で2進数の文字列表現をintに変換します。
- 10. 配列を文字列に変換する配列を変換する関数
- 11. Cでstrtokを使用して日付文字列をintに変換する
- 12. CでASCII文字をint型に変換する方法
- 13. リファクタリングRuby:文字配列をint配列に変換する
- 14. コンマでintに型打ち文字列を型変換する
- 15. 整数の文字列をint配列に変換するには?
- 16. 標準のC++文字列を文字列に変換する^
- 17. C++文字列[4]を文字列に変換する
- 18. SMLで文字列をintに変換する方法(intオプションではなく)
- 19. C++でのintの文字列への不正変換
- 20. 文字列に変換せずにintに数字を追加しますか?
- 21. Rubyハッシュ文字列をPython辞書に変換する
- 22. 文字列からintへの変換
- 23. 文字列をClojureの関数に変換するには?
- 24. int(x)を使わずに文字列をintに変換する方法
- 25. int配列内の文字列の座標を変換する
- 26. 双方向文字列ハッシュ関数
- 27. 文字列をInt - Alterスクリプトに変換するMSSQL
- 28. Evalの値をintから文字列に変換する
- 29. intを文字列に変換する巧妙なメソッド?
- 30. 文字列リストをintリストに変換する
'std :: hash()()'を試してください。 –
私はあなたの質問を理解するか分からない。ハッシュ関数を使用するほぼすべての場所で、ハッシュ関数にはすべて衝突があり、ハッシュに基づくルックアップには元のデータが必要であるため、元のデータを追跡する必要があります。それらが発生します。 – Omnifarious
はい、私はメモリ使用量のために元のデータを保持する必要はありません..また、私は衝突を解決したくない、実際に私の目標は衝突を維持することです! – Bipario