hash_map 初始化大小问题, 就是桶的个数

zhp21 2009-02-27 02:20:47
不要回到答 hash_map amap(10000); 我的机器 加了(10000) 编不过;
也不要回答我 不加数目, 我是为效率;
也不要回答我 用 getmaxsize 我不要用那大内存

难道非要重载自己的分配器?
...全文
651 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhp21 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
引用 4 楼 zhp21 的回复:
2楼你混分的,,, 假如我 只需要 1M的空间 ,非要开一个200M的空间吗?


一般我把hsahmap定为所需空间的2到3倍。
[/Quote]

你怎么做到的, 我学学!
zhp21 2009-03-02
  • 打赏
  • 举报
回复
你怎么做到的?
zhp21 2009-03-02
  • 打赏
  • 举报
回复
这个,这个, 为什么不能指定桶数呢? 按2倍增长策略, 那我到 65536个桶 内部是经过 16次能存申请, 如果一次指定, 那么效率不是快很多?
hmsuccess 2009-03-01
  • 打赏
  • 举报
回复
// 直接这样就可以了,不需要初始化其大小
hash_map <char* ,int> hmap;
同时你可以随时取bucket_count(), max_bucket_count()来观察
map.bucket_size默认为4

okkk 2009-02-28
  • 打赏
  • 举报
回复
C#中HashMap是按照2倍递增的。
最开始分配16个地址。如果存储时越界,重新分配32个地址。如果再越界分配64个。


如果楼主存储的数据大于100000个地址,数据量大于50M,建议使用文件上的hash.即索引文件。(就是数据库呵呵)
zhp21 2009-02-28
  • 打赏
  • 举报
回复
我自己顶
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhp21 的回复:]
2楼你混分的,,, 假如我 只需要 1M的空间 ,非要开一个200M的空间吗?
[/Quote]

一般我把hsahmap定为所需空间的2到3倍。
zhp21 2009-02-27
  • 打赏
  • 举报
回复
2楼你混分的,,, 假如我 只需要 1M的空间 ,非要开一个200M的空间吗?
thesecretblue 2009-02-27
  • 打赏
  • 举报
回复
学习中!!!
thesecretblue 2009-02-27
  • 打赏
  • 举报
回复
up!!!!
hityct1 2009-02-27
  • 打赏
  • 举报
回复
hash_map本来就是用空间换时间,没有空间怎么用?

c++的:
http://www.stlchina.org/twiki/bin/view.pl/Main/STLDetailHashMap#sawLDOMeNsH5.

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧