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

スウィーニー・トッド

両方のコンテナのドキュメントには、emplace()関数が要素を所定の位置に構築すると記載されていますが、要素が構築される前に、新しい要素の場所をどのように知るのでしょうか。

たとえば、unordered_setは、ハッシュ値に従って要素を配置します。unordered_setは、要素が構築される前に、その要素のハッシュ値をどのように知るのですか?

emplace関数は右辺値を取り、新しい要素の位置を計算し、オブジェクトを移動することを目的としているのではないかと思いましたが、insert()でも同じことができます。

クリス・ドッド

仕様でどのように機能するかは正確には指定されていませんが、一般的には、データ構造内部ノードオブジェクト(値を含むrbツリーノードまたはハッシュバケットノード)が引数から構築され、そのノードは次のようになります。データ構造にリンクされ(setのrb-treeに、unordered_setのハッシュバケットに)、値がすでに存在する場合(したがって追加されない場合)、ノードオブジェクトは破棄されます。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

std :: vector :: emplace_backおよびstd :: move

分類Dev

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

分類Dev

std.algorithm.copyおよびstd.digest

分類Dev

std :: Experimental :: ostream_joinerおよびstd :: pair

分類Dev

std :: bindおよびstd :: function with polymorphism、base class

分類Dev

std :: bindおよびstd :: weak_ptr

分類Dev

std :: enable_ifおよびstd :: shared_ptr

分類Dev

std :: stringおよびconstchar *

分類Dev

std :: forwardおよびoperator()

分類Dev

VisualC ++:String ^およびstd :: vector

分類Dev

std :: vectorおよびstd :: setプロパティを持つコンテナ?

分類Dev

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

分類Dev

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

分類Dev

std :: set <...> :: iteratorでのOMPおよび並列操作

分類Dev

std :: setと文字列キーおよび潜在的な効率の低下

分類Dev

std :: enable :: ifおよびstd :: is_base_ofを使用して継承を制約します

分類Dev

std :: setの.begin()および.end()関数を使用すると、予期しない結果が生成されます

分類Dev

std :: unordered_mapはどのようにキーを保存および比較して、順序付けせずに要素への高速アクセスを実現しますか?

分類Dev

std :: stoi、std :: setbase、およびstd :: out_of_rangeエラー

分類Dev

std :: setをカスタム.begin()および.end()でループする方法は?

分類Dev

IntelicpcおよびC ++ 14:std :: complexを構成する方法は?

分類Dev

std :: bindをstd :: functionおよびstd :: mapと一緒に使用する方法

分類Dev

std :: sscanfおよびstd :: stringを使用するC ++

分類Dev

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

分類Dev

std :: bindおよび右辺値の参照

分類Dev

std :: threadおよび右辺値の参照

Related 関連記事

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    std :: vector :: emplace_backおよびstd :: move

  5. 5

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

  6. 6

    std.algorithm.copyおよびstd.digest

  7. 7

    std :: Experimental :: ostream_joinerおよびstd :: pair

  8. 8

    std :: bindおよびstd :: function with polymorphism、base class

  9. 9

    std :: bindおよびstd :: weak_ptr

  10. 10

    std :: enable_ifおよびstd :: shared_ptr

  11. 11

    std :: stringおよびconstchar *

  12. 12

    std :: forwardおよびoperator()

  13. 13

    VisualC ++:String ^およびstd :: vector

  14. 14

    std :: vectorおよびstd :: setプロパティを持つコンテナ?

  15. 15

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

  16. 16

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

  17. 17

    std :: set <...> :: iteratorでのOMPおよび並列操作

  18. 18

    std :: setと文字列キーおよび潜在的な効率の低下

  19. 19

    std :: enable :: ifおよびstd :: is_base_ofを使用して継承を制約します

  20. 20

    std :: setの.begin()および.end()関数を使用すると、予期しない結果が生成されます

  21. 21

    std :: unordered_mapはどのようにキーを保存および比較して、順序付けせずに要素への高速アクセスを実現しますか?

  22. 22

    std :: stoi、std :: setbase、およびstd :: out_of_rangeエラー

  23. 23

    std :: setをカスタム.begin()および.end()でループする方法は?

  24. 24

    IntelicpcおよびC ++ 14:std :: complexを構成する方法は?

  25. 25

    std :: bindをstd :: functionおよびstd :: mapと一緒に使用する方法

  26. 26

    std :: sscanfおよびstd :: stringを使用するC ++

  27. 27

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

  28. 28

    std :: bindおよび右辺値の参照

  29. 29

    std :: threadおよび右辺値の参照

ホットタグ

アーカイブ