嘗試使用pair作爲visual Studio 2010下的hash_map的關鍵值。使用pair作爲視覺工作室下的hash_map的關鍵點
無法編譯它。
int _tmain(int argc, _TCHAR* argv[])
{
hash_map <pair<int, int>, int> months;
months[pair<int, int>(2,3)] = 1;
int d;
cin >> d;
return 0;
}
遇到錯誤消息:
錯誤1個錯誤C2440: '類型轉換':不能從 '常量性病::對< _Ty1,_Ty2>' 轉換爲 '爲size_t' C:\程序文件\微軟的Visual Studio 10.0 \ VC \包括\ xhash 34 1 testApplication1
我知道它probablly由於hash_map
ddoesn't爲pair
提供專業化。任何簡單的方法來解決它?謝謝
嗯,好的工作與'的std :: map'但不是'STD: :unordered_map' – Benj 2013-02-14 15:59:29
*「visual studio 2010」* - 刪除'hash_map'並使用正確的'std :: unordered_map'。儘管如此,這仍然不能解決您的問題。不幸的是,缺少'std :: pair'的散列函數是C++ 11中最大的漏洞之一(但是,至少他們在15年後意識到散列是有用的數據結構)。 – 2013-02-14 16:17:28