码迷,mamicode.com
首页 >  
搜索关键字:源码分析    ( 5623个结果
STL源码分析--迭代器总结、迭代器失效总结
Vector 1、内部数据结构:连续存储,例如数组。 2、随机访问每个元素,所需要的时间为常量。 3、在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。 4、可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。 5、迭代器失效 插入:vector的迭代器在内存重新分配时将失效(它所指向的元素在该...
分类:其他好文   时间:2014-08-27 23:33:38    阅读次数:403
Sizzle.filter [ 源码分析 ]
最近一直在研究Sizzle选择器,对于其中的原理确实不得不佩服! Sizzle中的filter方法,主要负责块表达式过滤元素集合,在方法内部会调用Sizzle.selector.fitler方法执行过滤操作。 Sizzle.filter主要分5个关键步骤: 1 使用LeftMatch确定表达式类型。 2 调用Sizzle.selectors.preFilter预过虑函数,执行过滤前的修正。...
分类:其他好文   时间:2014-08-27 22:05:34    阅读次数:207
STL源码分析--list
相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。       list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接合操作都不会造成原有的list迭代器失效,这在vecto...
分类:其他好文   时间:2014-08-27 20:34:28    阅读次数:384
STL源码分析--萃取编程(traits)技术的实现
1.为什么要出现? 按照默认认定,一个模板给出了一个单一的定义,可以用于用户可以想到的任何模板参数!但是对于写模板的人而言,这种方式并不灵活,特别是遇到模板参数为指针时,若想实现与类型的参量不一样的实例化,就变得不太可能了!也有时,想禁止此种相同的实例化变得不太可能!故而出现了,Partial Specialization! 同时,在使用void*指针时,可以最大限度的共享代码,减少代码的膨胀...
分类:其他好文   时间:2014-08-27 10:58:27    阅读次数:279
CopyOnWriteArray的使用
由于之前在弄 eventbus的源码分析时,源码中有用到CopyOnWriteArray 由于时间问题,知道现在才做了一个相应的整理:---------------------------------------------------------做一枚健康的小码畜-----------------...
分类:其他好文   时间:2014-08-27 10:34:17    阅读次数:213
storm操作zookeeper源码分析-cluster.clj
storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中)。backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState。clojure中的pr...
分类:其他好文   时间:2014-08-26 22:38:32    阅读次数:354
缓存初解(二)
EHCAche源码分析:首先看缓存类CacheManagerpublic class CacheManager { //该类在默认情况下读取CLASSPATH下的ehcache.xml文件,并且是单例模式创建新的缓存类 /** * Keeps track of all known C...
分类:其他好文   时间:2014-08-26 17:02:56    阅读次数:191
zg手册 之 python2.7.7源码分析(3)-- list 对象和 dict 对象
list 对象 list 对象的定义 list对象内部是使用数组实现,在数组中存储的是指针,指向要保存的对象。 allocated是list中数组的大小,ob_size是当前已经使用的数组大小。 typedef?struct?{ ????//?可变长对...
分类:编程语言   时间:2014-08-26 15:42:36    阅读次数:361
STL源码分析--空间配置器 第一级配置器
一、SGI STL配置器简介 SGI STL的配置器与众不同,它与标准规范不同。如果要在程序中明确使用SGI配置器,那么应该这样写: [cpp] view plaincopyprint? vectorint,std::alloc> iv;   他的名字是alloc,而且不接受任何参数。标准配置器的名字是allocator,而且可以接受参数。 SGI S...
分类:其他好文   时间:2014-08-26 11:49:26    阅读次数:243
STL源码分析--第二级空间配置器
本文讲解SGI STL空间配置器的第二级配置器。 相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片。不仅仅是碎片的问题,配置时的额外负担也是一个大问题。因为区块越小,额外负担所占的比例就越大。 额外负担是指动态分配内存块的时候,位于其头部的额外信息,包括记录内存块大小的信息以及内存保护区(判断是否越界)。要想了解详细信息,请参考MSVC或者其他malloc实现。...
分类:其他好文   时间:2014-08-26 11:49:16    阅读次数:201
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!