1 / 7
文档名称:

SGI STL V3.2 源码剖析 - 空间配置器.pdf

格式:pdf   页数:7
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

SGI STL V3.2 源码剖析 - 空间配置器.pdf

上传人:翩仙妙玉 2012/9/16 文件大小:0 KB

下载得到文件列表

SGI STL V3.2 源码剖析 - 空间配置器.pdf

文档介绍

文档介绍:踏雪无痕
SGI STL 源码剖析- 空间配置器
分类: C++ 2012-07-20 13:36 273人阅读评论(0) 收藏举报
.              文件名
bits/
.              背景知识
候捷在《STL源代码剖析》中说:“源码之前,了无秘密”,自然是大师的潇洒之语。但是,如果你不熟悉C++
template的基本语法,不明白Generic Programming的基本概念,那么即便STL的源码当前,对你来讲仍会有很多秘
密。所以,先简要介绍一些必要的背景知识,扫清前进的障碍。
.         两种风格的allocator
SGI STL中有两种风格的allocator,分别是STL standard style和SGI style,其区别说明如下:
1.                STL standard allocator是STL标准定义的,必须实现以下接口和associated type(以下T表示
该allocator负责管理的对象类型):
Ø         Associated type:
value_type                             负责管理的对象类型(T)
pointer                                          指向T的指针
const_pointer                         指向const T的指针
referance                               T的引用
const_referance                            T的const引用
size_type                               分配的对象个数的类型,注意类型中还隐含着它可以表示的最大值,
所以一般情况下size_type就是size_t,但某些情况下size_t可能无法胜任,比如某个allocator可以分配的对象个
数非常多(从硬盘中分配空间),多至超过了size_t的最大值,此时size_type就不能是size_t,而应该是一个最大
值更大的type。
defferance_type                            指针相减结果的类型,一般情况下就是ptrdiff_t,但也有可能不
是ptrdiff_t,道理同size_type。
rebind                                    rebind是一个内置class,它定义了一个associated type
other,other也是一个allocator的实例,但是负责管理的对象类型T不同。
Ø         接口:
default constructor
copy constructor
generic copy constructor
destructor