c++ 中hashmap佔用記憶體多的原因是基礎型別太少,物件用的太多導致的。解決方法:
1、匯入stl中的hash_map類庫#include <hash_map> using namespace std; using namespace stdext;
2、hash_map是一個聚合類它繼承自_Hash類,包括一個vector,一個list和一個pair,其中vector用於儲存桶,list用於進行衝突處理,pair用於儲存key->value結構,簡要地偽碼如下: class hash_map<class _Tkey, class _Tval> { private: typedef pair<_Tkey, _Tval> hash_pair; typedef list<hash_pair> hash_list; typedef vector<hash_list> hash_table; };
3、用法舉例:hash_map<int, int> IntHash; IntHash[1] = 123; IntHash[2] = 456; int val = IntHash[1]; int val = IntHash[2];
c++ 中hashmap佔用記憶體多的原因是基礎型別太少,物件用的太多導致的。解決方法:
1、匯入stl中的hash_map類庫#include <hash_map> using namespace std; using namespace stdext;
2、hash_map是一個聚合類它繼承自_Hash類,包括一個vector,一個list和一個pair,其中vector用於儲存桶,list用於進行衝突處理,pair用於儲存key->value結構,簡要地偽碼如下: class hash_map<class _Tkey, class _Tval> { private: typedef pair<_Tkey, _Tval> hash_pair; typedef list<hash_pair> hash_list; typedef vector<hash_list> hash_table; };
3、用法舉例:hash_map<int, int> IntHash; IntHash[1] = 123; IntHash[2] = 456; int val = IntHash[1]; int val = IntHash[2];