std::map
には、ヒントが正しい場合にlog(n)から一定時間までの挿入時間を短縮する「ヒント」イテレータを使用するinsert
メソッドがあります。コンテナは、新しく追加されたアイテムがヒントよりも少なく、ヒントの前のアイテムよりも大きなキーを持っていることを確認できるだけなので、これがどのように機能するかはかなり明白です。それ以外の場合、ヒントが間違っていて、通常の挿入が実行されます。std :: unordered_mapヒント付き挿入
std::unordered_map
もまた、ヒント機能を有するinsert
を有する。ヒントは何をしますか?ハッシュマップの挿入を高速化するために、もう1つの「ヒント」イテレータをどのように使用することができるかはわかりません。
これを使用する場合、適切な「ヒント」は何ですか。 std::map
では、ヒントは通常、マップ上のlower_bound
を呼び出すことによって検出されます。
ヒントオーバーロードは、通常の 'std :: map'とのインターフェース互換性のためだと思います。これは、値のハッシュを挿入して何か便利なことをする場所を正確に知る必要があるからです。基本的に 'unordered_map'が内部的に何を再現するのか、負荷、バケットなどを考慮する必要があります。また、あなたが指摘したように、挿入は償却O(1)とにかくです。 – Xeo
明らかにするには、何もしないと言っているのですか?それは私が推測していたものです。それは互換性のためだけのものでした。 – pauld