哈希表保持排序?

时间:2015-02-21 05:00:12

标签: data-structures hash hashtable

我的问题不是询问你是否可以对预先存在的哈希表进行排序,但如果我可以将右键索引的键保持排序状态?

例如,如果我需要一个人的哈希表,我可以用它来表示他们的出生年份,我希望最年轻的人总是低于最年长的人。如果我进行二次探测以重新进行,它仍将是最年长的最年轻人。听起来合乎逻辑,但订单会破坏什么情况呢?

tl; dr如果我有哈希表哈希,订单索引的键是否会在重新散列时保持排序?

1 个答案:

答案 0 :(得分:0)

从您的评论中,我的结论是您的问题与C ++有关。 C ++中的哈希表实现是STL的一部分。它们是std :: unordered_map / unordered_multimap和std :: unordered_set / unordered_multiset。

如果您希望从数据结构获取排序输出,则应调用std:map / multimap或std :: set / multiset。请注意,这里的实现不是哈希表,而是使用二叉树作为基本数据结构。