码迷,mamicode.com
首页 >  
搜索关键字:源码剖析    ( 888个结果
STL源码剖析(算法)
STL中算法是基于迭代器来实现的。 有了容器中迭代器的实现(对operator*、operator++等的重载),STL中大部分算法实现就显得很简单了。 先看一例关于find算法的实现: 1 template <class InputIterator, class T> 2 InputIterato ...
分类:编程语言   时间:2016-10-30 11:17:02    阅读次数:347
STL源码剖析(set/map)
SGI STL中的set跟map ...
分类:其他好文   时间:2016-10-29 11:35:11    阅读次数:273
STL源码剖析(deque)
deque是一个双向开口的容器,在头尾两端进行元素的插入跟删除操作都有理想的时间复杂度。 deque使用的是分段连续线性空间,它维护一个指针数组(T** map),其中每个指针指向一块连续线性空间。 (map左右两边一般留有剩余空间,用于前后插入元素,具体下面可以看到其实现) 根据上图,可以了解到d ...
分类:其他好文   时间:2016-10-27 12:44:24    阅读次数:256
STL源码剖析(list)
SGI STL中list是使用环状双向链表实现的。它的结点结构定义如下: 1 template <class T> 2 struct __list_node { 3 typedef void* void_pointer; 4 void_pointer next; 5 void_pointer pre ...
分类:其他好文   时间:2016-10-26 13:24:34    阅读次数:204
STL源码剖析(vector)
在SGI STL中,vector使用的是连续的内存空间,迭代器使用普通指针来实现。 因为使用的是连续的内存空间,在vector容量不足的时候会直接分配一块新的内存,把原来的元素copy进去,回收原来的内存空间。 因此在vector扩容的时候,原来的所有迭代器都会失效。 vector的实现基本都是围绕 ...
分类:其他好文   时间:2016-10-24 09:40:57    阅读次数:238
STL源码剖析(迭代器)
在STL中,容器跟算法是分开设计的,算法是通过迭代器来对容器进行操作的。 在算法运用迭代器的时候,可能会用到其相应的型别,例如返回值为容器中元素的型别,又或者说根据迭代器的类型来选择更好的算法等等。 为了实现这一点,还有为了兼容内置型别的迭代器(vector迭代器直接使用原生pointer),STL ...
分类:其他好文   时间:2016-10-23 09:44:02    阅读次数:212
STL源码剖析(空间配置器)
前言 在STL中,容器的定义中都带一个模板参数,如vector 其中第二个参数就是该容器使用的空间配置器,其中缺省使用STL已经实现的空间配置器(alloc), 该配置器使用malloc/free等为vector分配内存。 缺省的空间配置器 alloc定义了两级的空间配置器,第一级是对malloc/ ...
分类:其他好文   时间:2016-10-22 17:11:50    阅读次数:213
模板参数推导
STL有6大组件,阅读《STL源码剖析》后,对于我来说主要收货为:内存分配器、迭代器、仿函数。特别是迭代器章节收货最多,其中重中之重为traits机制的运用。 traits技法——STL的入门钥匙 首先必须清楚模板的参数推导机制,例如: ...
分类:其他好文   时间:2016-10-20 14:28:42    阅读次数:144
《Inside UE4》目录
《Inside UE4》目录 InsideUE4 UE4无疑是非常优秀的世界上最顶尖的引擎之一,性能和效果都非常出众,编辑器工作流也非常的出色,更难得宝贵的是完全的开源让我们有机会去从中吸取营养,学习世界上第一流游戏引擎的架构思想。 本系列教程《Inside UE4》,希望从最最底层的C++源码剖析 ...
分类:其他好文   时间:2016-10-08 16:04:43    阅读次数:342
STL源码剖析——list
分类:其他好文   时间:2016-09-15 22:59:11    阅读次数:169
888条   上一页 1 ... 32 33 34 35 36 ... 89 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!