为什么hashmap占用内存多?
c++ 中hashmap占用内存多的原因是基础类型太少,对象用的太多导致的。解决方法:
1、导入stl中的hash_map类库#include using namespace std; using namespace stdext;
2、hash_map是一个聚合类它继承自_Hash类,包括一个vector,一个list和一个pair,其中vector用于保存桶,list用于进行冲突处理,pair用于保存key->value结构,简要地伪码如下: class hash_map { private: typedef pair<_Tkey, _Tval> hash_pair; typedef list hash_list; typedef vector hash_table; };
3、用法举例:hash_map IntHash; IntHash[1] = 123; IntHash[2] = 456; int val = IntHash[1]; int val = IntHash[2];