回覆列表
  • 1 # 捱打的

    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];

  • 中秋節和大豐收的關聯?
  • 留學加拿大讀私立貴族中學是怎樣的?