考虑unordered_map
:如何使用树状数据结构高效地实现unordered_map?
template<
class Key,
class T,
class Hash = std::hash<Key>,
class KeyEqual = std::equal_to<Key>,
class Allocator = std::allocator< std::pair<const Key, T> >
> class unordered_map;
我知道(a==b)
比!(a<b) && !(b>a)
快,但由于unordered_map
不使用std::less<Key>
在地图上比较/存储密钥,我不知道如何才能在实现利润按树的数据结构最有效的方式来读取/存储在同一个桶中的不同密钥。看起来,通过树的任何实现都无法避免从Key转换为operator<()
定义的KeyWrapper。
我不完全确定你在问什么。你在谈论在桶里使用树吗?或者使用树而不是哈希表? (后一种情况是std :: map是什么)。但是你的一般问题:对于任何一种高效的树,你需要一个比较运算符来适当地平衡树。 – Joe 2012-02-04 15:04:53
是的,我正在谈论一个桶内的树(即张大树) – Martin 2012-02-04 15:44:49