C++ STL底层实现快速查阅

转载 2016年08月28日 20:13:26
原文链接: http://blog.csdn.net/huangkq1989/article/details/7277282
C++ STL 的实现:
1.vector  底层数据结构为数组 ,支持快速随机访问
2.list    底层数据结构为双向链表,支持快速增删
3.deque   底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问
4.stack   底层一般用2,3实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时
5.queue   底层一般用2,3实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时
6.4,5是适配器(adaptor),而不叫容器(container),因为是对容器的再封装
7.priority_queue 的底层数据结构一般为vector为底层容器,堆heap为处理规则来管理底层容器实现
8.set       底层数据结构为红黑树,有序,不重复
9.multiset  底层数据结构为红黑树,有序,可重复
10.map      底层数据结构为红黑树,有序,不重复
11.multimap 底层数据结构为红黑树,有序,可重复
12.hash_set 底层数据结构为hash表,无序,不重复
13.hash_multiset 底层数据结构为hash表,无序,可重复
14.hash_map      底层数据结构为hash表,无序,不重复
15.hash_multimap 底层数据结构为hash表,无序,可重复

相关文章推荐

c++ STL 容器底层实现

STL底层数据结构实现 C++ STL 的实现: 1.vector      底层数据结构为数组 ,支持快速随机访问 2.list           ...

C++ 学习笔记:STL 容器一些底层机制

vector 容器 list 容器 deque 容器 stack queue heap priority_queue set 和 multiset 容器 map 和 multimap 容器 hash_...

c++ STL 容器一些底层机制

参考STL源码分析1、vector容器 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变。vector是动态...

stl map底层之红黑树插入步骤详解与代码实现

文章用图片的方式对红黑树插入过程的调整进行了详细解释。并给出红黑树插入调整实现的C++源码。
  • mxway
  • mxway
  • 2014-06-08 08:24
  • 11959

STL源码分析--空间配置器的底层实现 (二)

STL源码分析—空间配置器 空间配置器中门道 在STL中的容器里都是使用统一的空间配置器,空间配置器就是管理分配内存和销毁内存的。在STL将在heap空间创建一个对象分为两个步骤,第一是申请一块内...

STL中map、set的数据结构及底层实现

摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分...

stl容器区别: vector list deque set map-底层实现

在STL中基本容器有: vector、list、deque、set、map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set:集合, 用来判断某一个元素...

STL中map、set的数据结构及底层实现 (转载)

摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分...

stl容器区别: vector list deque set map及底层实现

在STL中基本容器有: vector、list、deque、set、map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set:集合, 用来判断某一个元素是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)