码迷,mamicode.com
首页 >  
搜索关键字:stl源码    ( 345个结果
《STL源码剖析》读书笔记之关联式容器(2)
1.hashtable      二叉搜索树具有对数平均时间的表现,但这样的表现构造在一个假设上:输入数据有足够的随机性。而hashtable在插入、删除、搜寻等操作上也具有“常数平均时间的表现”,而且这种表现是以统计为基础的,不依赖于输入的随机性。      一个简单的hashtable的例子:      如果元素是32bits而不是16bits,我们要准备的array就必须是4GB的...
分类:其他好文   时间:2015-03-13 16:33:36    阅读次数:211
《STL源码剖析》读书笔记之关联式容器(1)
1.AVL树      AVL tree是指任何节点的左右子树高度相差最多1的二叉搜索树。任何节点左右子树高度最多相差1能够保证AVL树具有“对数深度”的平衡状态。在对AVL tree进行插入操作时,可能造成树平衡被破坏。根据新结点插入位置的不同,可以将平衡的破坏分成四种情况:左左,左右,右左,右右。其中左左和右右被称为外侧插入,可以采用单旋转操作调制解决。而左右和右左则称为内侧插入,可以采用双...
分类:其他好文   时间:2015-03-13 10:58:13    阅读次数:231
深入剖析 linux GCC 4.4 的 STL string
转自:深入剖析 linux GCC 4.4 的 STL string本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术。平台:x86_64-redhat-linuxgcc version 4.4.6 2011073...
分类:系统相关   时间:2015-03-10 15:23:19    阅读次数:173
《STL源码剖析》读书笔记之序列式容器(3)
1.heap      heap不属于STL容器组件,它是priority queue的底层实现机制。 (1)push_heap算法      向堆中加入元素,首先将要加入的元素放到堆所在数组的末端,然后再对这个元素进行上溯操作,直到新堆合法为止。如下图所示: (2)pop_heap算法      pop_heap操作取走堆中的最大(小)值。根据堆的特性,堆的最大(小)值必定是堆所存...
分类:其他好文   时间:2015-03-06 16:35:21    阅读次数:165
《STL源码解析》读书笔记之序列式容器(2)
1.deque      deque和vector的最大差异在于deque允许在常数时间内对首端进行元素的插入和删除操作。而且deque没有容量的观念,因为它是动态地以分段连续空间组合而成的,随时可以增加一段新的空间并链接起来。像vector那样因旧空间不足而重新配置一块更大空间的情况在deque里是不会发生的。虽然deque也提供Random Access Iterator,但它的迭代器并不是...
分类:其他好文   时间:2015-03-06 12:48:22    阅读次数:140
《STL源码解析》读书笔记之序列式容器(1)
1.vector      vector的数据安排以及操作方式与array非常相似,两者的唯一差别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能再改变。vector是动态空间,随着元素的加入它的内部机制会自行扩充空间以容纳新元素。 (1)vector的迭代器      因为vector维护的是一个连续线性空间,所以无论其元素型别为何,普通指针都可以作为vector的迭代器。因...
分类:其他好文   时间:2015-03-05 16:58:12    阅读次数:106
STL内存管理
过年在家无事看了《STL源码剖析》,开学了将看过的东西总结一下,以防忘记。 先从STL的内存管理开始总结。掌管STL内存控制的是一个叫空间适配器(alloc)的东西。STL有两个空间适配器,SGI标准空间适配器(allocate)和SGI特殊的空间适配器(alloc),前者只是对c++的new...
分类:其他好文   时间:2015-03-04 06:11:50    阅读次数:154
Iterator_traits到底有什么用?
最近在看《STL源码剖析》,到了将iterator_traits的这一节(3.4)。实现它的代码倒是看得懂,但是对它的使用场景却是有点摸不着头脑。 让我先贴一段代码,然后我们再慢慢看。 #include #include using namespace std; //第一种方式 template struct iter_traits { typedef typename I...
分类:其他好文   时间:2015-03-03 23:44:48    阅读次数:370
[转] STL源码学习----lower_bound和upper_bound算法
http://www.cnblogs.com/cobbliu/archive/2012/05/21/2512249.htmlPS:lower_bound of value 就是最后一个 value的位置lower_bound的意思是一段相等的序列的头(闭)和尾(开)的位置STL中关于二分查找的函数....
分类:编程语言   时间:2015-02-15 15:06:42    阅读次数:230
《STL源码解析》读书笔记之allocator(1)
1.具有sub-allocation的SGI内存配置器              内存配置器allocator是stl中的一个模板类,它提供类型化的内存分配以及释放操作。SGI STL的配置器与众不同,其名称是alloc而非allocator,而且不接受任何参数(如vector)。每个SGI STL容器采用的默认内存配置其都是alloc而不是allocator。        首先介绍a...
分类:其他好文   时间:2015-02-03 23:00:02    阅读次数:260
345条   上一页 1 ... 18 19 20 21 22 ... 35 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!