C++ STL 容器使用的底层数据结构

STL 容器 底层数据结构 查找 插入 删除
vector 动态数组 O(1) 随机访问 尾部 O(1)(均摊) 中间 O(n)
array 静态数组 O(1) 不支持扩容 不支持
deque 分段连续数组(Map + Block) O(1) 两端 O(1) 两端 O(1)
list 双向链表 O(n) O(1) O(1)
forward_list 单向链表 O(n) O(1) O(1)
set 红黑树 O(log n) O(log n) O(log n)
multiset 红黑树 O(log n) O(log n) O(log n)
map 红黑树 O(log n) O(log n) O(log n)
multimap 红黑树 O(log n) O(log n) O(log n)
unordered_set 哈希表 平均 O(1) 平均 O(1) 平均 O(1)
unordered_map 哈希表 平均 O(1) 平均 O(1) 平均 O(1)
unordered_multiset 哈希表 平均 O(1) 平均 O(1) 平均 O(1)
unordered_multimap 哈希表 平均 O(1) 平均 O(1) 平均 O(1)
stack 默认 deque(也可 vectorlist --- 栈顶 O(1) 栈顶 O(1)
queue 默认 deque --- 尾部 O(1) 头部 O(1)
priority_queue 二叉堆(Heap) 最大值 O(1) O(log n) O(log n)
STL 算法 底层算法 时间复杂度
sort() Introsort(快速排序 + 堆排序 + 插入排序) O(n log n)
stable_sort() 归并排序 O(n log n)
partial_sort() 堆排序 O(n log k)
nth_element() Introselect(快速选择) 平均 O(n)
make_heap() 建堆 O(n)
push_heap() 堆上滤 O(log n)
pop_heap() 堆下滤 O(log n)
binary_search() 二分查找 O(log n)
lower_bound() 二分查找 O(log n)
upper_bound() 二分查找 O(log n)
equal_range() 二分查找 O(log n)
find() 顺序查找 O(n)
find_if() 顺序查找 O(n)
count() 顺序遍历 O(n)
for_each() 顺序遍历 O(n)
transform() 顺序遍历 O(n)
copy() 顺序复制 O(n)
copy_if() 顺序复制 O(n)
remove() 双指针(快慢指针) O(n)
unique() 双指针 O(n)
reverse() 双指针交换 O(n)
rotate() 三次翻转/循环移动 O(n)
merge() 归并 O(n)
set_union() 双路归并 O(n)
set_intersection() 双路归并 O(n)
set_difference() 双路归并 O(n)
min_element() 顺序扫描 O(n)
max_element() 顺序扫描 O(n)
accumulate() 累加 O(n)
相关推荐
小星星闪亮登场1 小时前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
梓䈑1 小时前
【用 Vibe Coding 实现的 C++17 在线判题系统】前端开发 + Web 自动化测试
前端·c++·ai编程
冻柠檬飞冰走茶1 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
TunerT_TQ2 小时前
Valhalla 静态工程审阅 #018|MMCV 源码证据驱动评测【大厂开源基础设施特辑】
c++·开源·mfc·#计算机视觉·#商汤科技·#openmmlab·#静态源码审计
别动我齐刘海3 小时前
Day6 unitree_G1人形机器人GMR—— MotionInput
c语言·c++·人工智能·学习·机器学习·机器人·github
Henry Zhu1234 小时前
C++17 `weak_from_this` 详解:让对象安全地观察自己
c++
June`7 小时前
warp shuffle指令
c++·人工智能·算法·cuda
乱七八糟的屋子7 小时前
【C++数值计算】NumCpp超详细入门教程(纯正Numpy语法、零学习成本、C++首选科学计算库、性能压测对比)
c++·数值计算·numpy·高性能计算·科学计算·ndarray
choumin7 小时前
C程序能调用extern “C“声明的带默认参数的C++函数吗?
c语言·c++·extern c·默认参数
AmyLin_20017 小时前
PDF 色彩保真工程实践【3】上手实践:工程结构、依赖集成与一键构建运行
c++·visualstudio·pdf·zlib·vcpkg·libtiff·cmyk