stl
文章平均质量分 77
wangyanphp
这个作者很懒,什么都没留下…
展开
-
STL源码--alloc
//关于内存管理与配置,标准做法与内存池做法,内存池解决内存碎片的问题 //首先对于第一级配置器,我们直接使用new操作符就可以,第二级配置器是我们的主要战场。 //那么我们为什么设计制造第一级配置器呢?直接使用new就好了。 //首先,明确我们为什么设计两级配置器,因为我们针对不同的应用可以选择合适的配置器,那么我们就必须让配置器的使用 //对象看不出两者的差异:即,两者要有相同的接口。 //怎原创 2013-09-09 22:40:07 · 791 阅读 · 0 评论 -
STL源码--iterator
iterator,是stl中至关重要的一个组件,它是stl的基石,对于所有与容器有关的操作,几乎都用到iterator,本文先不谈iterator的各种使用技巧,而是谈谈iterator中的技术: 技术一:标记 //首先是迭代器的类型,我们需要一种方法来标记迭代器的类型,标记的方法多种多样,最简单的是使用掩码(宏定义) //这里我们为什么不使用一个int或者unsigned来存储一个掩码,而是原创 2013-09-11 23:12:59 · 854 阅读 · 0 评论 -
STL源码-traits的使用
关于iterator traits和type traits的使用,我们什么时候会使用这两个类?我们怎么使用? //问题:将[first1,last1)区间内的元素复制一遍。 //我们需要知道first1迭代器的类型。。 template _Iter copy(_Iter first1,_Iter last1) { //首先需要分配足够的空间,即迭代器所指元素的大小乘以个数 typedef t原创 2013-09-12 13:00:58 · 625 阅读 · 0 评论 -
STL源码--函数对象
函数对象对于stl这个以迭代器为基石的库的重要性不言而喻 //函数对象的重要性不言而喻,尤其是对于stl这个以迭代器为基石的库 //定义一个函数对象,实现两数相加 template struct plus { _Tp operator()(const _Tp& __x,const _Tp& __y){return __x+__y;} }; //我们可以使用plus(x,y);原创 2013-09-13 13:02:45 · 615 阅读 · 0 评论