前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除

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

作者头像
方亮
发布2019-01-16 16:58:07
1.8K0
发布2019-01-16 16:58:07
举报
文章被收录于专栏:方亮方亮

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

遍历

从前往后

traversal_begin_16384_highest
traversal_begin_16384_highest

traversal_begin_16384_highest

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

        其他容器性能差距不大。

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

从后往前

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

元素个数>15000

traversal_end_16384_highest
traversal_end_16384_highest

traversal_end_16384_highest

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

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

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

元素个数<4096

traversal_end_4096_highest
traversal_end_4096_highest

traversal_end_4096_highest

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

结论:

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

查找

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

元素个数>15000

find_16384_highest
find_16384_highest

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年10月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 遍历
    • 从前往后
      • 从后往前
        • 元素个数>15000
        • 元素个数<4096
      • 结论:
        • 元素个数>15000
    • 查找
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档