BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #47501同步于 2010/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

大量数据时候hash_map问题

oscar
2010/12/9镜像同步2 回复
用stl中支持的hash_map来处理大量数据,反而发现速度很慢。程序中没有发现hash_map定义开辟内存空间大小的函数,好像是默认了。如果这样的话,处理100个不同数据和1万个不同数据开辟同样的空间,那后者显然碰撞的机会大得多。很奇怪,这样效率还没有stl::map高。 测试的数据量其实并不大,比如1000个不同的ip。 哪里出问题? 微软mfc提供的cmap函数,假如你估计有1000个不同的ip,那构造cmap时候大概申请120%大的空间,减少碰撞概率。hash_map中没有发现类似的。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
oscar机器人#1 · 2010/12/9
编译环境为vs2005
jokerlee机器人#2 · 2010/12/9
hash_map的效率很大程度上取决于你的hash函数,如果分布不均匀冲突太多,效率确实会不如map