C++ STL 的实现
2016-05-29 07:58
218 查看
C++ STL 的实现:
vector 底层数据结构为数组 ,支持快速随机访问
list 底层数据结构为双向链表,支持快速增删
deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问
stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时
queue 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时
4和5是适配器,而不叫容器,因为是对容器的再封装
priority_queue 的底层数据结构一般为vector为底层容器,堆heap为处理规则来管理底层容器实现
set 底层数据结构为红黑树,有序,不重复
multiset 底层数据结构为红黑树,有序,可重复
map 底层数据结构为红黑树,有序,不重复
multimap 底层数据结构为红黑树,有序,可重复
hash_set 底层数据结构为hash表,无序,不重复
hash_multiset 底层数据结构为hash表,无序,可重复
hash_map 底层数据结构为hash表,无序,不重复
hash_multimap 底层数据结构为hash表,无序,可重复
vector 底层数据结构为数组 ,支持快速随机访问
list 底层数据结构为双向链表,支持快速增删
deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问
stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时
queue 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时
4和5是适配器,而不叫容器,因为是对容器的再封装
priority_queue 的底层数据结构一般为vector为底层容器,堆heap为处理规则来管理底层容器实现
set 底层数据结构为红黑树,有序,不重复
multiset 底层数据结构为红黑树,有序,可重复
map 底层数据结构为红黑树,有序,不重复
multimap 底层数据结构为红黑树,有序,可重复
hash_set 底层数据结构为hash表,无序,不重复
hash_multiset 底层数据结构为hash表,无序,可重复
hash_map 底层数据结构为hash表,无序,不重复
hash_multimap 底层数据结构为hash表,无序,可重复
相关文章推荐
- 一起talk C栗子吧(第一百五十七回:C语言实例--基于AF_UNIX域的数据报套接字通信)
- 字典序顺序加减 c++
- leetcode #50 in cpp
- leetcode #49 in cpp
- _T在C++下的使用与说明
- leetcode #48 in cpp
- C++第6次实验
- C/C++内存泄漏及其检测工具
- Effective C++: noexcept
- My Mistkes && C语言深度解剖
- C语言之typedef详解
- c语言深刻解剖 回顾
- GeekBand c++學習筆記之三(面向對象三把刀-inheritece,composition,delegation)
- CONST 部分用法
- C++设计模式-Observer观察者模式
- c++作业6
- 第6次c++作业
- *leetcode #47 in cpp
- C++ typename的起源与用法
- C语言的流程控制(第二篇章:三大循环)