2016-12-15 81 views
1

這產生編譯錯誤地圖(VS)與unordered_map對作爲密鑰

unordered_map<pair<int,int>,int> umap; 

據我所知,必須提供一個散列函數,它的工作。

map<pair<int,int>,int> omap; 

工作完全沒有任何散列函數。

這是爲什麼?

+0

它產生了什麼編譯器錯誤? – mascoj

+0

https://ideone.com/lgS58Z – DeCoDeR

回答

3

std::map不使用散列函數。相反,其「關鍵字通過使用比較函數進行排序...」,其中「搜索,刪除和插入操作具有對數複雜性」。查找是通過遍歷搜索樹而不是通過散列完成的。