相关环境和说明在《C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入》已给出。本文将分析各个容器中遍历和查找的性能。(转载请指明出于breaksoftware的csdn博客)

遍历

从前往后

traversal_begin_16384_highest

性能最差的是map、multimap、set和multiset这两簇。

其他容器性能差距不大。

非关联容器中,list的性能最差。

从后往前

支持从后向前遍历的容器并不多,只有:vector、deque、list、set、map、multiset和multimap。

元素个数>15000

traversal_end_16384_highest

非关联容器的性能要优于关联容器。

非关联容器之间相比,性能差距不大。

在12500个元素之前,vector的效率要比list和deque低,但是之后vector是最优的。

元素个数<4096

traversal_end_4096_highest

vector在初期会有高耗时操作,之后性能优秀(通过斜率)。

结论:

除了map、multimap、set和multiset,其他容器的遍历性能都差不了太多。

查找

因为非关联容器的查找只能通过遍历,其效率和关联容器的查找没法比。所以我们只比较关联容器。

元素个数>15000

find_16384_highest

set类要优于对应的map类容器。即set优于map;multiset优于multimap;unordered_set优于unordered_map;unordered_multiset优于unordered_multimap。

multi类要优于对应的非multi类容器。即multimap优于map;multiset优于set;unordered_multimap优于unordered_map;unordered_multiset优于unordered_set。

无序关联容器要优于有序关联容器。

文中图例可从如下地址获取:https://github.com/f304646673/stl_perf/tree/master/windows

C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除相关推荐

  1. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——删除

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除 ...

  2. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——遍历和查找

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请指明出于breakso ...

  3. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——删除

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除的性能.(转载请指明出 ...

  4. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入

    操作系统是Windows10 64bit,编译器是 Microsoft Virtual Studio Community 10.编译产出是64位测试程序.(转载请指明出于breaksoftware的c ...

  5. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——插入

    操作系统是ubuntu 18.04.1 server amd64,gcc是 7.3.0.编译产出是64位测试程序.(转载请指明出于breaksoftware的csdn博客) 因为加入测量,就会导致误差 ...

  6. C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——插入(精简易懂版,句句干货)

    文中将测试vector.list.forward_list.deque.set(multiset).unordered_set(unordered_multiset).map(multimap)和un ...

  7. C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——删除(精简易懂版,句句干货)

    删除 头部删除 vector性能是最差的 ,set和map的性能次之. deque和forward_list性能是最优的.(差距不是十分明显) 中间删除 vector的性能最差, 效率最好的是list ...

  8. C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——遍历和查找(精简易懂版,句句干货)

    遍历 从前往后 性能最差的是map.multimap.set和multiset这两簇. 其他容器性能差距不大. 从后往前 支持从后向前遍历的容器并不多,只有:vector.deque.list.set ...

  9. java 删除注册表_java – 如何从Windows注册表中删除JRE条目?

    JDK本身不使用Windows注册表来运行. 在某些情况下,使用系统注册表运行的JRE是如Applet或以WebStart技术开始的程序. 最后,如果从Windows系统目录(例如C:/winnt/s ...

最新文章

  1. 有趣而又被忽略的Unity技巧
  2. extlink.php,ExtJs 学习笔记基础篇 Ext组件的使用_extjs
  3. 直播「拯救」互联网?
  4. if you feel lonely
  5. boost::intrusive::avl_set用法的测试程序
  6. 微信有电脑客户端吗_微信电脑版有哪些功能呢
  7. 2018年1月 常用的linux命令
  8. 差分隐私中随机响应的抛硬币问题(LDP)
  9. 添加standardjs和eslint配置检测代码规范步骤
  10. Typora如何设置图片的默认保存路径
  11. MFC实现Flash动画播放
  12. H5获取html标签
  13. 浪潮之颠一_读书笔记
  14. Android 反编译Apk修改资源文件并重新打包
  15. win10共享打印机出现操作无法完成(错误0x00000709)解决办法
  16. 支付宝首页搜索栏淡出效果HTML,jQuery实现仿Alipay支付宝首页全屏焦点图切换特效...
  17. 【经验】软件测试用例设计之错误推测法
  18. 苹果mac电脑的end 键和home键
  19. C语言 输出出生日期
  20. flask面试常问问题总结

热门文章

  1. 关于人脸识别数据库的几点介绍
  2. 计算机视觉:Bag of words算法实现图像识别与搜索
  3. 开启灯光就是近光吗_保时捷Macan大灯改装技术,东莞专业豪车灯光改装修复。保时捷改LED大灯...
  4. PCL特征点与配准(1)
  5. 完整的Blender三维课程:素描到三维艺术的初学者
  6. Blender+SP+UE5游戏艺术工作流程学习
  7. Blender和Substance Painter复古相机创作学习教程
  8. Zbrush制作手榴弹案例讲解学习教程
  9. Linux系统性能分析: CPU
  10. 爬虫之Xpath详解