c++中的allocator是标准库中的一个类,负责内存分配管理。

下面是《STL源码剖析》中一个简单allocator实现的部分源代码:

deallocate:

 template <class T>inline void _deallocate(T* buffer){::operator delete(buffer);    //为什么不用 delete [] ?  ,operator delete 区别于 delete //operator delete  是一个底层操作符}

destory:

 template <class T>inline void _destory(T *ptr){ptr->~T();}

destory负责调用类型的析构函数,销毁相应内存上的内容(但销毁后内存地址仍保留)

deallocate负责释放内存(此时相应内存中的值在此之前应调用destory销毁,将内存地址返回给系统,代表这部分地址使用引用-1)

参考:《STL源码剖析》 P44-45;

《C++ Primer》 P428-429.

STL:: allocator之deallocate destory的区别与联系相关推荐

  1. STL allocator

    为了精密分工,STL allocator决定将这两阶段区分开来.内存配置由alloc:allocate()负责,内存释放由alloc::deallocate()负责: 对象建构由::construct ...

  2. stl中unordered_map 和 map的区别 ?

    stl中unordered_map 和 map的区别 目录 一.hash_map与unordered_map 二.unordered_map与map 三.unordered_map与unordered ...

  3. 浅析STL allocator

    一般而言,我们习惯的 C++ 内存配置操作和释放操作是这样的: 1 class FOO{}; 2 FOO *pf = new FOO; 3 delete pf; 我们看其中第二行和第三行,虽然都是只有 ...

  4. SGI STL allocator

    简单实现是一个allocator C++模板及实现vector_~怎么回事啊~的博客-CSDN博客 SGI STL包含了一级空间配置器和二级空间配置器,其中一级空间配置器allocator采用mall ...

  5. 【C++】STL map 与 multimap 用法和区别

    参考: https://blog.csdn.net/shuzfan/article/details/53115922 https://www.nhooo.com/cpp/cpp-map-swap-fu ...

  6. STL中mem_fun与mem_fun_ref的区别[转]

    STL中mem_fun和mem_fun_ref的用法 分类: C++2006-11-21 09:11 5244人阅读 评论(8) 收藏 举报 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的 ...

  7. STL里resize和reserve的区别?

    vector和deque的区别? 两个函数的功能是有区别 reserve是容器预留空间 resize是改变容器的大小,并且创建对象 reserve函数之后一个参数,即需要预留的容器的空间 为实现res ...

  8. STL 里 resize 和 reserve 的区别

    resize 和 reserve 的区别 resize() reserve() 测试代码 resize() 改变当前容器内含有元素的数量(size()),eg: vectorv; v.resize(l ...

  9. STL中vector和list的区别

    底层结构   vector的底层结构是动态顺序表,在内存中是一段连续的空间.   list的底层结构是带头节点的双向循环链表,在内存中不是一段连续的空间. 随机访问   vector支持随机访问,可以 ...

最新文章

  1. 在三台Redis节点上部署哨兵集群以及主备切换、故障恢复的容灾演练中哨兵各自的日志信息、状态查看分析
  2. rca接口_音频线怎么区别?几种音频接口逐一介绍
  3. 关于TCP/IP必须知道的几个基础问题
  4. vim永久取消空格颜色
  5. CF938G Shortest Path Queries
  6. NeHe OpenGL第二十五课:变形
  7. 通过条形码扫描器攻击工控系统
  8. finally引起的异常丢失问题
  9. ffplay播放摄像头
  10. 如何生成SSH key
  11. Pytorch框架中余弦相似度(Cosine similarity)、欧氏距离(Euclidean distance)源码解析
  12. 杂谈技术·油猴脚本的功能实现
  13. 国家电网入局区块链,打造国家级能源互联网
  14. Virtualbox 设置共享文件夹
  15. neu ikobikob
  16. flask专题-小说网站开发二(抓取数据)
  17. 程序设计基础c语言版大作业,程序设计基础(C语言版)
  18. Windows命令集
  19. math_三角升幂/降幂/微积分公式填空
  20. 大学生bootstrap框架网页作业成品 bootstrap响应式网页制作模板 学生家乡网页bootstrap框架网站作品 html静态网页设计制作 dw静态网页成品模板素材网页

热门文章

  1. 微信小程序 图片旋转后上传
  2. python爬取京东评论分析_Python爬取京东商品评价(动态网页的爬取)
  3. 51单片机DAC数模转换
  4. opencv各个lib库的作用
  5. 在网页中加入MSN、QQ以实现即时通讯
  6. 金融科技、算法交易、量化金融必读书:Python金融大数据分析第2版
  7. STM32与OLED显示姓名学号
  8. .co域名后缀怎么样?
  9. 关于三维数组的一些问题
  10. 2018推荐的android手机,2018年7月份Android手机性价比排行榜