STL源码剖析
文章平均质量分 68
ChrisYoung1314
这个作者很懒,什么都没留下…
展开
-
STL源码剖析——deque的实现原理和使用方法详解
Deque 简介 deque是“double—ended queue”的缩写,和vector一样都是STL的容器,deque 是双端数组,而 vector 是单端的。 deque 在接口上和 vector 非常相似,在许多操作的地方可以直接替换。 deque 可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法,这个等下会详讲)。 deque 头原创 2015-08-26 10:48:44 · 23273 阅读 · 3 评论 -
STL源码剖析——vector的实现原理总结
vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对原创 2015-08-07 10:53:47 · 1678 阅读 · 0 评论 -
STL源码剖析——stack的实现原理和使用方法详解
Stack 简介 stack 是堆栈容器,是一种“先进后出”的容器。 stack 是简单地装饰 deque 容器而成为另外一种容器。 使用 stack 时需要加上头文件 #include 。stack 实现原理 以某种既有容器作为底部结构,将其接口改变,使之符合“先进后出”的特性,形成一个 stack,是很容易做到的。deque 是双向开口的数据结构原创 2015-08-27 16:48:52 · 4115 阅读 · 0 评论 -
STL源码剖析——空间的配置与释放
C++的内存配置基本操作是 ::operator new(),内存释放的基本操作是 ::operator delete()。这两个全局函数相当于C的malloc()和free()函数。是的,正是如此,STL正是以malloc()和free()完成内存的配置与释放。 但是考虑到小型区块所可能造成的内存破碎问题,STL中设计了双层级配置器, 第一级配置器直接使用malloc()和free(原创 2015-08-13 12:54:59 · 885 阅读 · 1 评论