C++ STL 容器重要概念
2021-03-27 15:27
标签:基本 hash 方式 容器 自定义 长度 gnu table ring 本文所有内容均在 GNU C++ (64位) 里瞎搞出来,有很多猜测,仅供参考 C++ STL 容器重要概念 标签:基本 hash 方式 容器 自定义 长度 gnu table ring 原文地址:https://www.cnblogs.com/axiomofchoice/p/13659385.html如何定义
vector/deque/list/forward_list
内存分配
容器
sizeof
扩容方式
内存释放方式
vector
24
每次两倍
不释放
deque
80
初始512字节,每次512字节+少量额外内存
基本释放
list
16
要多少申请多少
不留多余内存
forward_list
8
要多少申请多少
不留多余内存
(multi)set/map
48
要多少申请多少
不留多余内存
unordered_(multi)set/map
56
要多少申请多少+桶的内存
桶不释放,其余不留多余内存
string
8
每次两倍+少量额外内存
不释放
stringstream
368
初始512字节,每次两倍+少量额外内存
不释放
时间复杂度
list
的 size()
是 \(O(n)\) 的!(forward_list
干脆不定义这个函数),想用 list
代替 deque
的同学要注意这个坑点迭代器
上一篇:C语言学习DAY5