当前位置: 首页 > news >正文

C++ STL容器相关操作的复杂度分析

序列容器

vector:

  • 随机访问: O(1)

  • 尾部插入/删除: O(1) (均摊)

  • 中间插入/删除: O(n)

  • 查找: O(n)

deque:

  • 随机访问: O(1)

  • 头尾插入/删除: O(1)

  • 中间插入/删除: O(n)

  • 查找: O(n)

list/forward_list:

  • 任意位置插入/删除: O(1)

  • 随机访问: O(n)

  • 查找: O(n)

关联容器

set/multiset (红黑树实现)​:

  • 插入/删除/查找: O(log n)

  • 最小值/最大值: O(1)

map/multimap (红黑树实现)​:

  • 插入/删除/查找: O(log n)

unordered_set/unordered_map (哈希表实现)​:

  • 平均插入/删除/查找: O(1)

  • 最坏情况: O(n)

容器适配器

stack/queue:

  • 所有操作: O(1) (基于底层容器)

priority_queue:

  • 插入: O(log n)

  • 删除顶部: O(log n)

  • 访问顶部: O(1)

均摊复杂度考虑了动态扩容的情况。

http://www.lryc.cn/news/624848.html

相关文章:

  • FPGA驱动量子革命:微美全息(NASDAQ:WIMI)实现数字量子计算关键验证
  • 认证授权系统设计
  • redis-集成prometheus监控(k8s)
  • 【K8s】harbor安装与推送镜像
  • 中断线程化
  • 虚幻基础:动作时间窗
  • 徕芬的冰火两重天:增长困局,转型阵痛还是衰落前奏?
  • SQL注入防御
  • 【168页PPT】IBM五粮液集团数字化转型项目实施方案建议书(附下载方式)
  • 力扣2道dp
  • Dijkstra和多层图 0
  • [NSSCTF 2022 Spring Recruit]rrrsssaaa
  • 决策树学习报告
  • 决策树简单实战
  • 容器化 Android 开发效率:cpolar 内网穿透服务优化远程协作流程
  • 【Langchain系列三】GraphGPT——LangChain+NebulaGraph+llm构建智能图数据库问答系统
  • Swift + Xcode 开发环境搭建终极指南
  • 一个月内快速掌握蓝牙原理与应用的全面学习规划
  • 104、【OS】【Nuttx】【周边】文档构建渲染:安装 Sphinx 扩展(上)
  • Day7--滑动窗口与双指针--1695. 删除子数组的最大得分,2958. 最多 K 个重复元素的最长子数组,2024. 考试的最大困扰度
  • 负载均衡终极指南:从流量分发到云原生架构的核心解析
  • Apache IoTDB集群部署实战:1C2D架构的高性能时序数据库搭建与优化指南
  • 第4章-04-用WebDriver页面元素操作
  • onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false
  • 告别 DOM 的旧时代:从零重塑 Web 渲染的未来
  • scikit-learn/sklearn学习|弹性网络ElasticNet解读
  • LINUX 818 shell:random;for for
  • 咨询进阶——解读咨询顾问技能模型
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道高职组资讯整合
  • Unity开发中的浅拷贝与深拷贝