码迷,mamicode.com
首页 >  
搜索关键字:stl源码剖析    ( 238个结果
C++模板 - traits & policy
traits和policy在泛型编程里面还是挺常见的。像stl的string实现里面就用到了traits,boost里面也很多地方用到traits。 traits和policy很多时候都会一起使用,让我们在泛型编程里面多了一些思路。 traits:中文解释为特征,记得候捷在《stl源码剖析》那本书里面还叫做萃取什么的。当我们想从一个类型身上获取他的一个附加特性的时候,往往可以考虑traits。...
分类:编程语言   时间:2014-12-17 12:53:23    阅读次数:129
STL六大组件之——算法小小小小的解析
参考自侯捷的《stl源码剖析》stl算法主要分为非可变序列算法(指不直接修改其所操作的容器内容的算法),可变序列算法(指可以修改它们所操作的容器内容的算法),排序算法(包括对序列进行排序和合并的算法、搜索算法以及有序序列上的集合操作),数值算法(对容器内容进行数值计算)。1.非可变序列算法stl中的...
分类:编程语言   时间:2014-12-15 23:17:43    阅读次数:417
STL源码分析--算法
STL源码剖析—算法          在STL中的算法中一些算法是可以根据算法名字来判断算法作用的。所有算法的参数都是迭代器,不过不同的算法调用的迭代器类型也是不同的。多有的STL算法都作用在由迭代器{first,lase)所表示出来的区间上。拷贝(copy)交换(swap)替换(replace)填写(fill)删除(remove)排列组合(permutation)分割(partition)随...
分类:编程语言   时间:2014-12-13 19:27:32    阅读次数:198
高效STL--非标准散列容器
STL是建立在泛化之上的。数组泛化为容器,参数化了所包含的对象的类型。函数泛化为算法,参数化了所用的迭代器的类型。指针泛化为迭代器,参数化了所指向的对象的类型。STL中的六大组件:容器、算法、迭代器、配置器、适配器、仿函数。 这六大组件中在容器中分为序列式容器和关联容器两类,正好作为STL源码剖析这本书的内容。迭代器是容器和算法之间的胶合剂,从实现的角度来看,迭代器是一种将operator*、o...
分类:其他好文   时间:2014-12-13 19:26:19    阅读次数:126
STL源码剖析---关联容器
STL源码剖析---关联容器          标准关联容器分为set和map两大类,包括multiset和multimap,这些容器的底层机制都是RB-tree.标准之外的关联容器有hashtable 以及以此hash table为底层机制而完成的hash_set(散列集合) hash_map(散列映射表) hash_multiset  hash_multimap. 序列和关联容器各自的内部...
分类:其他好文   时间:2014-12-09 23:11:43    阅读次数:465
STL源码剖析—序列容器
STL源码剖析—序列容器 对于STL中的容器,存在一定的内含关系,例如,heap内含一个vector,priority-queue内含一个hep,stack和queue都含有一个deque,set/map/multiset/multimap都内含一个RB-tree,hash_x都内含一个hashtable。          对于序列容器来说,vector和list的插入都是在指向迭代器之前进...
分类:其他好文   时间:2014-12-08 23:03:18    阅读次数:273
STL源码剖析—迭代器与traits编程方法
STL源码剖析—迭代器与traits编程方法          STL的中心思想就是将算法和容器分开,彼此独立设计,最后再以粘合在一起,算法和容器的泛型化,并不是很难,C++的class templates和function templates可以达成目标,但是粘合在一起就是迭代器的事情。          这么一说迭代器就是为了粘合算法和容器的,如果单独设计迭代器,那么这个迭代器就必须知道某...
分类:其他好文   时间:2014-12-08 21:29:03    阅读次数:161
STL源码剖析 --- 空间配置器 std::alloc
STL是建立在泛化之上的。数组泛化为容器,参数化了所包含的对象的类型。函数泛化为算法,参数化了所用的迭代器的类型。指针泛化为迭代器,参数化了所指向的对象的类型。STL中的六大组件:容器、算法、迭代器、配置器、适配器、仿函数。 这六大组件中在容器中分为序列式容器和关联容器两类,正好作为STL源码剖析这本书的内容。迭代器是容器和算法之间的胶合剂,从实现的角度来看,迭代器是一种将operator*、o...
分类:其他好文   时间:2014-12-08 00:55:58    阅读次数:213
图解STL内存管理的两种边界情况(STL源码剖析补充)
图解STL内存管理的两种边界情况(STL源码剖析补充) 第一种情况就是内存池剩余的小字节空间怎么处理,会不会有内存泄露,答案肯定是不会,但是这个过程是怎么处理的,以下的代码已经简化处理,直接放到VS2010里就可以运行 #include #include static const size_t __ALIGN=8; static const size_t __MAX_B...
分类:其他好文   时间:2014-12-04 08:51:29    阅读次数:161
stl源码剖析:编译器的预定义位置集设置
目前我的工作环境还是win,所有演示也用VS或者cygwin这些环境作为基础。 1、配置项目的附加include目,增加预定义位置集设置,编译器会把它加入include路径,比如在某个文件夹中定义一个vector(不带后缀),当我们项目中使用#include 猜想1:如果预定义位置集中所增加的不同路径中有两个相同的文件,include采用的是有歧义形式的方式,即不附带完整路径,使用的是哪个文件...
分类:其他好文   时间:2014-11-16 01:52:46    阅读次数:211
238条   上一页 1 ... 13 14 15 16 17 ... 24 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!