std :: unordered_set :: load_factor、なぜdoubleではなくfloatなのですか?

Peregring-lk

私は間の最速のタイプを理解floatしては、double通常、倍精度に基づいてネイティブのALUの実装に依存します。逆精度に基づいて計算を行う場合、ALUは常に対応する精度変換を実行する必要があります。

それで、なぜ標準floatload_factorを表すために選ばれたのですか?ハッシュテーブルのコンテナを考えてメモリを節約するためだと思いますが、もっと強い理由があるかどうか知りたいです。

軌道上の明度レース

これは、元の提案のリビジョン3で発生しました

float代わりに使用するように負荷係数操作を変更しましたdouble

理論的根拠は後で与えられます(「E.ハッシュサイズ変更の制御」の下で):

浮動小数点パラメーターはタイプfloatまたはタイプである必要がありdoubleますか?違いはほとんどありません。一方でdoubleは、通常、反対の強い理由がない場合に使用される「自然な」浮動小数点型です。一方、floatハッシュテーブルの実装によってスペースを節約できる場合があり、高精度が関係するコンテキストでは値が使用されないという事実をユーザーに警告する場合があります。を選択しましたfloat

だから基本的にあなたが言ったこと。

パフォーマンスに関しては、これと、それが物事の壮大なスキームで実際に重要ではないことについての言及があります(浮動小数点整数の使用を擁護する文脈ではありますが):

実行時の浮動小数点パラメーターのコストは、(すべての挿入ではなく再ハッシュごとに1回の浮動小数点乗算です。インクリメンタルハッシュを使用しても、これは再ハッシュのコストによって矮小化されることはほぼ確実です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Inserting multiple not-a-numbers into a std::unordered_set<double>

分類Dev

std :: unordered_setのnon-constfind()

分類Dev

std :: unordered_set operator ==()N ^ 2の複雑さはなぜですか?

分類Dev

std :: unordered_set <char>からの効果的な構築std :: string

分類Dev

std :: string_viewおよびstd :: stringのstd :: unordered_set

分類Dev

std :: unordered_setがCComBSTRタイプをキーとして受け取らないのはなぜですか?

分類Dev

std :: unordered_setで32769番目の挿入が失敗するのはなぜですか?

分類Dev

std :: unordered_setで32769番目の挿入が失敗するのはなぜですか?

分類Dev

std :: functionをstd :: setまたはstd :: unordered_set値型として使用できないのはなぜですか?

分類Dev

std :: setまたはstd :: unordered_setでの挿入順序の保持

分類Dev

boost :: range :: adapters :: transformed over std :: unordered_setの使用方法は?

分類Dev

`std :: unordered_set`の使用法を理解する

分類Dev

std :: unordered_set :: equal_rangeイテレータの質問

分類Dev

std :: unordered_set ::複雑さを消去する

分類Dev

std :: unordered_set ::複雑さを消去する

分類Dev

負荷率の制限に違反していなくても、std :: unordered_setが再ハッシュされるのはなぜですか?

分類Dev

std :: setの代わりにstd :: unordered_setを使用する場合

分類Dev

エラー:「unordered_set」は「std」のメンバーではありません

分類Dev

std :: unordered_setをどのようにstatic_castしますか?

分類Dev

std :: unordered_setをどのようにstatic_castしますか?

分類Dev

カスタム述語を使用したstd :: unordered_setの未定義の動作

分類Dev

std :: unordered_setイテレータトラバーサルの複雑さ

分類Dev

std :: setおよびstd :: unordered_setは、emplace()を使用して要素をどのように構成しますか?

分類Dev

std :: unordered_set :: findとstd :: findの奇妙なパフォーマンスの違い

分類Dev

<unordered_set>のバグ?

分類Dev

non-const find() in std::unordered_set

分類Dev

Undefined behavior in std::unordered_set with custom predicate

分類Dev

std :: unordered_setの病理学的入力はどのように存在できますか?

分類Dev

キーがstd :: mapに存在しない場合、std :: unordered_setからキーを効率的に削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    Inserting multiple not-a-numbers into a std::unordered_set<double>

  2. 2

    std :: unordered_setのnon-constfind()

  3. 3

    std :: unordered_set operator ==()N ^ 2の複雑さはなぜですか?

  4. 4

    std :: unordered_set <char>からの効果的な構築std :: string

  5. 5

    std :: string_viewおよびstd :: stringのstd :: unordered_set

  6. 6

    std :: unordered_setがCComBSTRタイプをキーとして受け取らないのはなぜですか?

  7. 7

    std :: unordered_setで32769番目の挿入が失敗するのはなぜですか?

  8. 8

    std :: unordered_setで32769番目の挿入が失敗するのはなぜですか?

  9. 9

    std :: functionをstd :: setまたはstd :: unordered_set値型として使用できないのはなぜですか?

  10. 10

    std :: setまたはstd :: unordered_setでの挿入順序の保持

  11. 11

    boost :: range :: adapters :: transformed over std :: unordered_setの使用方法は?

  12. 12

    `std :: unordered_set`の使用法を理解する

  13. 13

    std :: unordered_set :: equal_rangeイテレータの質問

  14. 14

    std :: unordered_set ::複雑さを消去する

  15. 15

    std :: unordered_set ::複雑さを消去する

  16. 16

    負荷率の制限に違反していなくても、std :: unordered_setが再ハッシュされるのはなぜですか?

  17. 17

    std :: setの代わりにstd :: unordered_setを使用する場合

  18. 18

    エラー:「unordered_set」は「std」のメンバーではありません

  19. 19

    std :: unordered_setをどのようにstatic_castしますか?

  20. 20

    std :: unordered_setをどのようにstatic_castしますか?

  21. 21

    カスタム述語を使用したstd :: unordered_setの未定義の動作

  22. 22

    std :: unordered_setイテレータトラバーサルの複雑さ

  23. 23

    std :: setおよびstd :: unordered_setは、emplace()を使用して要素をどのように構成しますか?

  24. 24

    std :: unordered_set :: findとstd :: findの奇妙なパフォーマンスの違い

  25. 25

    <unordered_set>のバグ?

  26. 26

    non-const find() in std::unordered_set

  27. 27

    Undefined behavior in std::unordered_set with custom predicate

  28. 28

    std :: unordered_setの病理学的入力はどのように存在できますか?

  29. 29

    キーがstd :: mapに存在しない場合、std :: unordered_setからキーを効率的に削除するにはどうすればよいですか?

ホットタグ

アーカイブ