這對我來說很奇怪,我期望它是一個哈希表。爲什麼std :: map是紅黑樹而不是哈希表?
我在下面的答案中看到了3個原因(這可能是正確的,但我不認爲它們是真正的原因)。 Hash tables v self-balancing search trees
雖然哈希可能不是一個簡單的操作。我認爲對於大多數類型來說,這很簡單。
當你使用映射時,你期望的東西會給你分期O(1)插入,刪除,查找,而不是log(n)。
我同意樹有更好的最壞情況的表現。
我認爲有一個更大的原因,但我不明白。 在c#中,例如Dictionary是一個哈希表。
內存過去非常昂貴。使用'std :: unordered_map'來實現map的哈希表。 – segfault
紅黑樹也被訂購。 – GWW