
STL源码剖析
对面『胶己人』
This is my note, not my blog
展开
-
STL概述与版本简介
STL是一个标准,因而有各种实现版本。本书使用的是SGI STL ,这个版本对STL做了大量的扩充。术语转换表:STL标准库是一个符合开发性封闭原则的程序库。 gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更多其他不同语言的编译器,GCC就代表 the GNU Compiler Collection,所以表示一...原创 2018-04-04 20:36:58 · 557 阅读 · 0 评论 -
空间适配器(allocator)
allocator是空间配置器而不说是内存配置器,因为他可以直接向硬盘取空间。SGI也有allocator,但一般使用的都是alloc,因为allocator只是基层内置配置/释放行为(::operator new,这应该是一个全局函数,这也是C++内存配置的基本操作)的一个封装而已,没有效率上的优化。new,malloc和::operator newSTLallocator的默认操作...原创 2018-04-06 18:28:14 · 400 阅读 · 0 评论 -
序列化容器
vector使用的是线性连续空间 list是双向链表,增加删除元素迭代器是不会失效的。 deque:双向开口的连续线性空间。map是中控器,存的是缓冲区地址,一开始先让中间块指向一块缓存,再分别往两边扩展。插入删除元素时看是不是首尾,首尾就简单了,不影响迭代器。否则迭代器都会失效,因为要根据前后元素的多少选择左移还是右移操作。stack只是更改了deque的接口,封装其头端...原创 2018-04-06 23:01:21 · 520 阅读 · 0 评论 -
关联式容器
平衡二叉搜索树:根据平衡条件的不同有AVL树,红黑树等。当在AVL树中插入一个新节点时,导致某个节点的高度差变为了2,则此时需要调整。假设平衡被破坏的最深节点为X,则平衡被破坏的情况有如下四种(插入点不可能直接在左右节点上,否则该树平衡早就被破坏了):k1,k2,k3是以节点X为标准得出的。红黑树问题...原创 2018-04-07 11:31:11 · 326 阅读 · 0 评论