《STL源码剖析》
文章平均质量分 88
松狮MVP
这个作者很懒,什么都没留下…
展开
-
《STL源码剖析》深入分析序列式容器——deque
欲抑先扬!先来看一下deque的优点:(1)头部插入删除操作,常数时间;(2)vector的假象三部曲“因空间不足a寻觅更大空间;b复制原数据;c释放源空间”在deque是不会发生的。因此也就不需要提供空间预留功能。deque的缺点:它的迭代器并不是普通指针,其复杂度远远超出vector,这也直接影响了各个运算层面。deque实质上由一段一段的连续空间组成,如果有必要在前原创 2015-11-08 16:16:08 · 828 阅读 · 0 评论 -
Traits 编程技法+模板偏特化+template参数推导+内嵌型别编程技巧
STL中,traits编程技法得到了很大的应用,了解这个,才能一窥STL奥妙所在。先将自己所理解的记录如下:Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:template typename T>class myIterator{ ...};当我们使用myIterator时,怎转载 2015-10-24 15:00:10 · 876 阅读 · 1 评论 -
《STL源码剖析》迭代器以及Traits设计
C++的class templates和function templates可以实现容器和算法的泛型化。难点和关键是设计这两者的胶着剂角色——迭代器——提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴漏该容器的内部数据结构和内部表述方式。迭代器是一种Samart pointer。每一种STL容器都提供有专属的迭代器!原因:为了让实现细节封装起来而不让使用者看到,所以把迭代器原创 2015-10-24 15:36:49 · 771 阅读 · 0 评论 -
《STL源码剖析》深入分析序列式容器——vector
vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。吃多少用多少。(1)vector的空间配置数据结构:iterator start; //已使用空间的头iterator finish; //已使用空间的尾iterator end_of_storage; //目前可用空间的尾 (我们都知道一个vecto原创 2015-11-03 21:45:25 · 743 阅读 · 0 评论