質問

地元のオブジェクトが寄せ、ファセット.

の照合ファセットはハッシュする方法を返します。
http://www.cplusplus.com/reference/std/locale/collate/hash/

二つの質問:

  • なんかハッシュ法を採用しております。
  • が必要と32ビットの値です。
    う場合の期間は以上の32ビットは誰もが知技術のための折りたたみのハッシュを短縮します。いうまくいけば間違えると折りたたみかけしたことの衝突やかに対応できる衝突していくことを考慮ください。れた場合の最小化).

注意:利用できないC++0x特徴
向上するのは、かまわないでしょう。

役に立ちましたか?

解決

いいえ、誰も私が--から変わることが可能である実装です。第一の要件は、(N3092,§20.8.15):

すべてのオブジェクトの種類の鍵を握るのが存在する専門性のハッシュ、インスタンス生成のハッシュは:

  1. を満足するハッシュを要求事項(20.2.4)コストパフォーマンスとしての関数の呼び出しの引数型にDefaultConstructible要件(33)、CopyAssignable要件(37),
  2. するホットスワップ対応(20.2.2)lvalues,
  3. を入れ子になった型result_typeとargument_typeは同義語のためのsize_tキーを、それぞれ
  4. を満たす必要がk1==k2がtrueの場合、h(k1==h(k2)がtrueで、hタイプのオブジェクトのハッシュ、k1とk2はオブジェクトの型。

(N3092,§20.2.4):

タイプHのハッシュの要件の場合:

  1. この関数オブジェクトタイプ(20.8),
  2. でsatisifesの要件CopyConstructibleとDestructible(20.2.1),
  3. の表現を以下のテーブルを有効に示す意味で、
  4. を満たすのですべてのその他の要求事項この項.

§20.8.15の要件のハッシュ、§20.2.4のハッシュ。ご覧のとおりだとか。のテーブルの上は基本的にカバーがありますの要件:

  1. ハッシュ関数でなければならない純粋な"すなわち、結果のみに依存すの入力は任意のコンテキスト、歴史、など)
  2. この機能は変更の引数が渡されます、
  3. でをスローしません例外をスローしました。

正確なアルゴリズムの違い ない 指定したものの、ものの長さ、上記の要件は私が記載要件ること(少なくともいうのかは明白です。この実装は無料で実施へのハッシュ、ほとんどの方法を望んでいます。

他のヒント

実装の場合は使用の合理的なハッシュ関数、ビットのハッシュ値として特別な相関を入力します。ここでは、ハッシュ関数では64"ランダム"ビットが、だいたい32くしたりすることも可能ですけて行動を起こしてみてください/last/...32ビットの値として頂きますようお願い致します。ているものを取りなすべてのビットがランダムに(それが良いハッシュ機能)。

では最も単純な、まだ完全に合理的な方法となり、32ビットのハッシュ値をすることはできない。

int32_t value = hash(...);

(もちろんのこ崩れの団体の4億値が一のように見えるその多くが可能な場合が億倍のソースとしての価値目標値を評価できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top