2016-12-15 82 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不使用散列函数。相反,其“关键字通过使用比较函数进行排序...”,其中“搜索,删除和插入操作具有对数复杂性”。查找是通过遍历搜索树而不是通过散列完成的。