Попробуйте использовать пару в качестве ключевого значения для hash_map под Visual Studio 2010.Использование пара в качестве ключа для 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: 'приведение типа': не может конвертировать из 'Const станд :: пары < _Ty1, _Ty2>' на 'size_t' C: \ Program файлы \ Microsoft Visual Studio 10.0 \ VC \ включить \ xhash 34 1 testApplication1
Я знаю, что это из-за probablly hash_map
ddoesn't обеспечивают специализацию pair
. Любой простой способ его исправить? спасибо
Хм, хорошо работает с 'станд :: map' но не' зЬй: : unordered_map' – Benj
* «под визуальную студию 2010» * - отбросьте этот 'hash_map' и используйте правильный' std :: unordered_map'. Хотя, это еще не решит вашу проблему. К сожалению, отсутствующие хеш-функции для 'std :: pair' являются одним из самых больших оплошностей в C++ 11 (но, по крайней мере, они поняли через 15 лет, что хэш - полезная структура данных). –