比较测试map、unodered_map、unordered_set性能效率,整型数值查找

测试环境:

centos 6.5

gcc 4.4.3

使用boost库生成均匀分布的随机正整形数字。


1、分别创建三个数据集对象

typedef unsigned int UINT32;

std::unordered_map<UINT32,UINT32> test_map1;

std::map<UINT32,UINT32> test_map2;

std::unordered_set<UINT32> test_set2;


2、创建1000 000个0~999999之间的随机数字

每次测试分别将完全相同的随即数字组,分别放入三个容器。


3、仅测试查找的时间。一样是查找1000 000次。用find函数。


结果如下。r后面的数字表示,随即查找命中的次数。

后三个数字分别是对应的查找时间,单位是ms。

 r:95092

test_map1:146ms
test_set2:  153 
test_map2:279 

 r:95213
134
137 
276 

r:95222
150 
139 
287 

r:95227
134 
136 
280 

 r:95205
133
132 
273 


结果来说:

unodered_map、unordered_set不相上下

但是map性能略微差一些。

之前我做过样本数据小一点的测试,大约10000个数字,依然是map性能差一些。

根据本次测试,

我会优先选用unodered_map、unordered_set做测试。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值