cent os 下使用hashmap + string
hash_map定義在__gnu_cxx名字空間下原型是: template<class _Key, class _Tp, class _HashFcn = hash<_Key>,class _EqualKey = equal_to<_Key>, class _Alloc = allocator<_Tp> >class hash_map;使用hash_map + Keytype: 需要自定義 _HashFcn, _EqualKey 如果只提供_Key, _Tp, 就需要自己特化hash<_Key>, equal_to<_Key>hash<_key> 定義在 __gnu_cxx下 equal_to<_Key> 定義在std 名字空間下使用string時: #include <ext/hash_map> using namespace __gnu_cxx; namespace __gnu_cxx {template <> struct hash<string>{ size_t operator () (const string & s) const{ return __stl_hash_string(s.c_str());} }; } 這樣就行, equal_to<string> 庫內(nèi)部已經(jīng)提供了
?
總結(jié)
以上是生活随笔為你收集整理的cent os 下使用hashmap + string的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。