unordered_map
C ++での最近の話で、ルックアップの効率性(償却済みのO(1)とO(log n))のため、以前に使用unordered_map
したほとんどの場合に使用する必要があることに気付きました。ほとんどの場合、マップを使用します。または、キータイプとしてまたはを使用します。したがって、ハッシュ関数の定義に問題はありません。考えれば考えるほど、単純なタイプのキーの場合にオーバーを使用する理由が見つからないことに気付きました。インターフェースを調べたところ、何も見つかりませんでした。私のコードに影響を与える重要な違い。map
int
std::string
std::map
std::unordered_map
そこで質問:使用する任意の本当の理由があるstd::map
以上std::unordered_map
のような単純なタイプの場合int
とはstd::string
?
私は厳密にプログラミングの観点から質問しています。これは完全に標準とは見なされておらず、移植に問題が発生する可能性があることを知っています。
また、正しい答えの1つは、オーバーヘッドが小さいため、「データセットが小さいほど効率的である」と思われます(それは本当ですか)。したがって、質問の量がキーは自明ではありません(> 1 024)。
編集: ああ、私は明白なことを忘れました(GManに感謝します!)-はい、もちろん地図は注文されています-私はそれを知っており、他の理由を探しています。