您的位置:首页 > 其它

同时创建两个STL容器map的效率问题

2015-05-14 19:50 225 查看
本人遇到的主要问题是在创建两个map(十万大小以上)的时候效率总是很低,刚开始怀疑自己的算法有问题,搞了两天都没能搞定,在师兄的指导下终于定位到map本身的问题,以下是我的测试结果:

map<long,long> map1      map<long,long> map2  分别插入:1-size map
= n;

情况1:

map1.size = 3400;  map2.size = 340000;  创建时间分别为: 125     235  (毫秒)

情况2:

map1.size = 340000;  map2.size = 3400;  创建时间分别为: 391     0  (毫秒)

情况3:

map1.size = 340000;  map2.size = 340000;  创建时间分别为: 1765     235  (毫秒)

总结以上的测试结果:

使用第一个map时,创建时间最长。 第二个map创建时间大大缩短时间。

如果是多个map又是怎样的呢??

map<long,long> map1      map<long,long> map2  
map<long,long> map3  分别插入:1-size map
= n;

情况1:

map1.size = 340000 ; map2.size = 340000 ; map3.size = 340000 创建时间分别为:438 218 250

情况2:

map1.size = 3400 ; map2.size = 340000 ; map3.size = 340000 创建时间分别为:93 1094 235

情况3:

map1.size = 340000 ; map2.size = 3400 ; map3.size = 340000 创建时间分别为:234 0 250

因此:最后的结论时:当我们在创建使用map结构时:第一次创建最大的map时花费时间是最多的。

因此我就可以很开心的在不关注效率的过程中把最大的map给创建了,后面再使用map的时候就会很快了。

具体的原因也不知道是为什么,有道友知道的话可以告诉贫僧一生。感谢。。。

不得不说,map的这个特性促使我特想写下一篇日志来记录下测试的苦逼岁月,因此有了本人的处女博客。道友勿喷!!!!


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  map STL