首页 理论教育 配置类成员函数:C++STL标准模板库精解

配置类成员函数:C++STL标准模板库精解

时间:2023-10-25 理论教育 版权反馈
【摘要】:构造函数allocator::allocator():此函数是默认的构造函数,用于产生一个配置器对象。void allocator::deallocate:此函数用于释放空间,指针p所指的空间是由同一个配置器以allocate()分配的。p不能是NULL或0,且区块内的元素必须已经被析构。void allocator::construct:此函数以参数value作为p所指的那个元素的初值,其作用相当于newT。=:若配置器a1和a2不是可以互换的,则此函数返回true。若配合标准容器使用,则对相同型别产生的配置器彼此必须可互换,此时函数应当始终返回false。

配置类成员函数:C++STL标准模板库精解

构造函数allocator::allocator():此函数是默认的构造函数,用于产生一个配置器对象。

构造函数allocator::allocator(const allocator& a):复制构造函数,产生一个配置器副本,使原有配置器分配的空间可通过另一个配置器回收。

析构函数~allocator::allocator():此函数用于销毁配置器对象。

pointerallocator::address(reference value)

const_pointerallocator::address(const_reference value)

第一个函数会返回一个非常数指针,指向一个非常数值;第二个函数会返回一个常数指针,指向一个常数值。

size_typeallocator::max_size():此函数返回“对allocate()有意义的、用于分配空间”的最大许可值。

pointer allocator::allocate(size_type num),(www.xing528.com)

pointer allocator::allocate(size_type num,allocator<void>::const_pointerhint):

上述两个函数均返回一块内存空间,可容纳num个型别为T的元素。元素不会被构造或初始化。第二个参数是可有可无的,真实意义由实例化的版本具体决定,可用于辅助提升效能。

void allocator::deallocate(pointer p,size_type num):此函数用于释放空间,指针p所指的空间是由同一个配置器以allocate()分配的。p不能是NULL或0,且区块内的元素必须已经被析构。

void allocator::construct(pointer p,const T& value):此函数以参数value作为p所指的那个元素的初值,其作用相当于new((void∗)p)T(value)。

void allocator::destroy(pointer p):此函数用于销毁p所指向的对象,但不回收空间,仅仅调用对象的析构函数。其作用相当于((T∗)p)->~T()。

bool operator==(const allocator&a1,const allocator&a2):若配置器a1和a2是可以互换的,则此函数会返回true。若某个配置器分配的空间由另一个配置器收回,则称这两者可以互换。若配合标准容器使用,则对于不同型别产生的配置器必须可以互换,此时函数应当返回true。

bool operator!=(const allocator&a1,const allocator&a2):若配置器a1和a2不是可以互换的,则此函数返回true。其作用相当于:!(a1==a2)。若配合标准容器使用,则对相同型别产生的配置器彼此必须可互换,此时函数应当始终返回false。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈