STL源代码分析(ch2 内存分配)标准接口

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL源代码分析(ch2 内存分配)标准接口相关的知识,希望对你有一定的参考价值。

1. 标准接口

以下几种自定义类型是一种type_traits技巧

allocator::value_type
allocator::pointer
allocator::const_pointer
allocator::reference
allocator::const_reference
allocator::size_type
allocator::difference
allocator::rebind

1.1 接口

allocator::allocator() // 默认构造函数
allocator::allocator(const allocator&) // 拷贝构造函数
template <class U>allocator::allocator(const allocator<U>&) // 泛化的拷贝构造函数
allocator::~allocator() // 析构函数

// 返回某个对象的地址,a.address(x)等同于&x
pointer allocator::address(reference x) const

// 返回某个const对象的地址,a.address(x)等同于&x
const_pointer allocator::address(const_reference x) const

// 配置空间,足以存储n个T对象。第二个参数是个提示。
//实现上可能会利用它来增进区域性(locality),或完全忽略之
pointer allocator::allocate(size_type n, const void* = 0)

void allocator::deallocate(pointer p, size_type n)// 释放先前配置的空间

size_type allocator:maxsize() const// 返回可成功配置的最大量

//在p指向位置 调用对象的构造函数,等同于 new((void*)p) T(x)
void allocator::construct(pointer p, const T& x)

void allocator::destroy(pointer p)// 调用对象的析构函数,等同于 p->~T()

以上是关于STL源代码分析(ch2 内存分配)标准接口的主要内容,如果未能解决你的问题,请参考以下文章

STL源代码分析(ch2 内存分配)概述

STL源代码分析(ch2 内存分配)uninitialized_fill

STL源代码分析(ch2 内存分配)jjalloc.h

STL源代码分析(ch2 内存分配)uninitialized_fill

STL源代码分析(ch2 内存分配)uninitialized_fill_n

STL容器自定义内存分配器