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

删除

头部删除

元素个数>15000

erase_begin_16384_highest

vector性能是最差的。我们再看下其他容器

erase_begin_16384

deque和forward_list性能是最优的。

元素个数<1024

erase_begin_1024

由于vector的性能太差,上图例中没有将其列出来。

我们可以观察到,各个容器在特别的元素个数时,会同步发生高耗时的操作。在图中就是各个曲线在某个x轴区间都发生了值快速递增。

结果对比:

vector的性能始终最差。

除了vector,非关联容器性能都优于关联容器。

除了vector,set和map的性能最差。

中间删除

元素个数>15000

erase_mid_16256_highest

vector的性能最差。我们看下其他容器

erase_mid_16256

效率最好的是list和forward_list。其他容器差不了太多,包括deque性能也不行。

元素个数<256

erase_mid_256_highest

和小容器插入表现的不同,vector在从中间删除元素时效率依旧糟糕。

结果对比:

vector效率持续糟糕。

list和forward_list性能最优。

deque和其他关联容器效率相似,比较低效。

尾部删除

元素个数>15000

erase_end_16384_highest

foward_list效率极差。我们再看下其他容器

erase_end_16384

vector表现最优。其次是deque和list。

map的性能要优于set。

set在元素个数超过3000左右后,效率仅优于forward_list。

结论:

vector只有在尾部删除时性能最优。在头部和中间删除时,性能始终是最差的。

forward_list在头部和中间删除时,性能是非常好的。但是在尾部删除时,性能极其差。

中间删除时,性能最高的是list和forward_list。deque在这个场景下表现很平庸,和其他关联容器差不多。

头部和尾部删除时,deque性能非常优异。

文中图例可从如下地址获取: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. paper 68 :MATLAB中取整函数(fix, floor, ceil, round)的使用
  2. centos7.3网络实验环境(金个人)
  3. 用scheme重写Python的三大函数map reduce 和filter
  4. winform c#绑定combobox下拉框 年度代码。
  5. 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)
  6. 对new int[]()的理解(转载)
  7. 查找练习 hash——出现过的数字
  8. 19年兰州大学计算机分数线,兰州大学2019年在广东省录取分数线
  9. 面试官问我:如何在 Python 中解析和修改 XML
  10. bzoj1037 [ZJOI2008]生日聚会Party 插数dp
  11. C++默认构造函数的合成
  12. 美团推出语音应用平台 已与奔驰、小米等企业达成合作
  13. java输出 JButton,Java JButton用法
  14. 一份简单、直接、高效的中文求职信模板,一般是直接写在邮件正文中。
  15. 万字长文|大数据学前准备之Linux入门笔记(附资料)
  16. Frequent values ——RMQ
  17. 2017年总结和2018年展望
  18. 区分联通、移动、电信 号码的策略
  19. 扬帆际海——跨境电商转型升级新时代来临!
  20. 极客大学产品经理训练营:产品经理的职业规划 第20课总结

热门文章

  1. python输入输出流详解_输入输出流的概念
  2. Python Qt GUI设计:QSpinBox计数器类(基础篇—15)
  3. Halcon 读写txt文件,以逗号或空格分割
  4. 矩阵快速幂+构造方法
  5. 【深度学习】(1) 前向传播,附python完整代码
  6. 在UE5创造一个多山的松树森林场景学习教程
  7. 基于i2c子系统的驱动分析
  8. ceph-kvstore-tool 工具使用详解
  9. ceph-osd无法获取osd map导致osd down掉的解决办法
  10. 解决Eclipse添加新server时无法选择Tomcat7的问题