根据STL的规范,以下是allocator的必要接口:
allocator::value_type
allocator::pointer
allocator::const_pointer
allocator::reference
allocator::const_reference
allocator::size_type
allocator::difference_type
allocator::rebind
一个嵌套的(nested)class template。class rebind<U>拥有唯一成员other,那是一个typedef,代表allocator<U>
allocator::allocator()
 default constructor
allocator::allocator(const allocator&)
copy constructor
template <class U> allocator::allocator(const allocator<U>&)

泛化的copy construtor
allocator::~allocator()
destructor
pointer allocator::address(reference x)const
返回某个const 对象的地址。算式a.address(x)等同于&x
const_pointer allocator::allocate(size_type n,const void* = 0)
 配置空间,足以存储n个T对象。第二个参数是个提示。实现上可能会利用它来增进区域性(locality),或完全忽略之
void allocator::deallocate(pointer p,size_type n)
归还先前配置的空间
size_type allocator::max_size()const
返回可成功配置的最大量
void allocator::construct(pointer p,const T& x)
 等同于new((void*) p)T(x)
void allocator::destroy(pointer p)
等同于p->~T()
摘自:侯捷《STL源码剖析》
备注:allocator::rebind的解释,可在我的另一篇《stl allocator::rebind》中找到。

转载于:https://www.cnblogs.com/chinazhangjie/archive/2010/08/19/1803038.html

stl:空间配置器的标准接口相关推荐

  1. STL空间配置器(二)

    ***上一篇是对STL空间配置器的入门级理解,在这一篇中,我将讨论更加深入的SGI STL空间适配器的内容.在下一节中,我将根据自己的理解,结合STL标准接口,实现一个符合STL标准的具有次级配置能力 ...

  2. 【STL深入学习】SGI STL空间配置器详解(二)-第二级空间配置器

    本文讲解SGI STL空间配置器的第二级配置器. 相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片.不仅仅是碎片的问题,配置时的额外负担也是一个大问题.因为区块越小,额外负担所占 ...

  3. 剖析SGI STL空间配置器(空间配置器的重要性和重要成员及函数)

    剖析SGI STL空间配置器 在我们使用STL容器的时候,模板最后一个参数会有一个默认的allocator作为容器模板的参数,这个参数就是STL的空间配置器.容器的空间配置器见这篇文章:容器空间配置器 ...

  4. 剖析SGI STL空间配置器(deallocate内存回收函数和reallocate内存扩充函数)

    剖析SGI STL空间配置器(deallocate内存回收函数和reallocate内存扩充函数) deallocate内存回收函数 deallocate函数的定义: static void deal ...

  5. 一步一步写STL:空间配置器(1)

    侯捷说:追踪一流程序,并从中吸取养分,模仿着他写的程序,比那些自以为靠自己努力写出来的下三流程序价值高得多,至少我这么认为--世界上99.999%的程序,在STL面前都是下三流水平! 侯捷老师这句话对 ...

  6. 【STL深入学习】SGI STL空间配置器详解(一)-第一级空间配置器

    一.SGI STL配置器简介 SGI STL的配置器与众不同,它与标准规范不同.如果要在程序中明确使用SGI配置器,那么应该这样写: vector<int,std::alloc> iv; ...

  7. 【STL】STL空间配置器

    STL标准规格告诉我们,STL配置器定义于<memory>中,而SGI的<memory>中含有两个文件. #include<stl_alloc.h> //内存空间的 ...

  8. 内存管理(四)SGI STL 空间配置器

    前言 根据之前的学习,C++的内存申请的基本操作就是: 调用::operator new():释放内存的操作就是:调用 ::operator delete().而二者是通过malloc() 和 fre ...

  9. 揭秘——STL空间配置器

    为什么要有空间配置器呢?这主要是从两个方面来考虑的. 1.小块内存带来的内存碎片问题   单从分配的角度来看.由于频繁分配.释放小块内存容易在堆中造成外碎片(极端情况下就是堆中空闲的内存总量满足一个请 ...

最新文章

  1. 车模换几代了,电池什么时候换?
  2. bleve搜索引擎源码分析之索引——mapping真复杂啊
  3. 多维数组的索引与切片_Numpy库使用入门(二)数据的索引和切片
  4. 二、Zabbix 服务端部署安装
  5. 关于URL指向的icon的存储问题
  6. 复习者-Java EE 7概览
  7. 封装EF code first用存储过程的分页方法
  8. 机器阅读理解首次超越人类!云从刷新自然语言处理新纪录
  9. python内建函数测试对象身份_Python学习笔记 03 Python对象
  10. 【python】filter()函数
  11. Sphinx以及coreseek的安装及使用
  12. ModuleNotFoundError: No module named ‘exceptions‘
  13. Digit-Sum(HDU - 5710)
  14. 用C语言描述数据结构
  15. 初中生学计算机应用有什么好方面,计算机有哪些专业 初中毕业学习相关专业有发展吗...
  16. excel 方框打钩
  17. vue3 ts版本深度拷贝功能推荐ts-deepmerge
  18. 【Unity】Jay 开发日志(一)——人物的移动、死亡与平台跳跃
  19. 小米8透明探索版无限重启,且有BootLoader锁的情况下卡刷机成功
  20. 优秀班级答辩PPT模板

热门文章

  1. 使用Gitosis搭建Git服务器
  2. 设计模式之美:Bridge(桥接)
  3. 使用csscan评测字符集改变
  4. 计算机专业三年级的学生英语,计算机专业英语 计算机专业英语对照表.doc
  5. PTA:6-8 数组元素的区间删除 (20 分)
  6. 「倾心整理~」数据库系统概论—第5章(数据库完整性)
  7. 机器学习 - [源码实现决策树小专题]决策树中子数据集的划分(不允许调用sklearn等库的源代码实现)
  8. linux未找到make命令,linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)...
  9. 事务不是与当前连接无关联就是已完成_mysql索引锁事务
  10. java三星题之_JAVA三星题之playing a TicTacToe game