考慮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