STL的allocaotr
allocator类是C++的一个模板,它提供类型化的内存分配以及对象的分配和撤销。
allocator称为分配器(空间配置器)
STL的分配器用于封装STL容器在内存管理上的底层细节。在C++中,其内存配置和释放如下:
new运算分两个阶段:(1)调用::operator new配置内存;(2)调用对象构造函数构造对象内容
delete运算分两个阶段:(1)调用对象希构函数;(2)掉员工::operator delete释放内存
为了精密分工,STL allocator将两个阶段操作区分开来:
内存配置有alloc::allocate()负责,
内存释放由alloc::deallocate()负责;
对象构造由::construct()负责,
对象析构由::destroy()负责。
同时为了提升内存管理的效率,减少申请小内存造成的内存碎片问题,SGI STL采用了两级配置器,当分配的空间大小超过128KB时,会使用第一级空间配置器;当分配的空间大小小于128KB时,将使用第二级空间配置器。第一级空间配置器直接使用malloc()、realloc()、free()函数进行内存空间的分配和释放,而第二级空间配置器采用了内存池技术,通过空闲链表来管理内存。
STL的allocaotr相关推荐
- 拾牙的2021年秋招总结(大概会有帮助?)
目录 秋招面试经历 秋招面经参考 基础部分 面经 常见问题 对秋招一些经验 最后收获 后续安排 秋招面试经历 时间 公司 岗位 面试轮次 是否完成 2021年7月2日 07:00 禾赛 嵌入式软件工程 ...
- 牛客网C++面经 容器和算法
原文网址 参考网址 C语言中文网 请你来说一下map和set有什么区别,分别又是怎么实现的? map和set都是C++的关联容器,其底层实现都是红黑树(RB-Tree).由于 map 和set所开放的 ...
- 后端怎么接收map_史上最全,C++后端开发面试题与知识点汇总
以下汇总C++后台开发面试题与知识点,还有其他岗位的相关题库和资料,想要什么岗位的可以留言哦~ 附面试题目: 一.基础知识 1.基本语言 说一下C++和C的区别 说一下C++中static关键字的作用 ...
- C/C++ 八股文(二)
C++八股文(一) 说一下static关键字的作用 参考回答: 1 全局静态变量 在全局变量前加上关键字 static,全局变量就定义成一个全局静态变量. 静态存储区,在整个程序运行期间一直存在. 初 ...
- 【求职】拼多多 C++方向面经
第一篇 一面 2019/4/15 来自于牛客网 1.自我介绍,然后问项目 2.项目比较偏,讲了挺久的,不过面试官还是听完了,并且问了几个问题 3.同步异步,阻塞非阻塞 IO 区别 4.epoll/se ...
- C 工程师校招面试考点基础篇汇总含答案解析
9.请你说一下你理解的c++中的smart pointer四个智能指针: 10.请回答一下数组和指针的区别 11.请你回答一下野指针是什么? 12.请你介绍一下C++中的智能指针 13.请你回答一下* ...
- STL源码剖析---空间配置器
看过STL空间配置器的源码,总结一下: 1.STL空间配置器:主要分三个文件实现,stl_construct.h 这里定义了全局函数construct()和destroy(),负责对象的 ...
- [转]STL的内存分配器
题记:内存管理一直是C/C++程序的红灯区.关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面 ...
- STL库(C++11)提供的异步执行方法的方式
在进行并发编程的时候难免会遇到异步执行时候,现代C++标准库提供了几种异步执行的方式,本文收集整理了一下,以备将来翻阅. Thread方式 Thread 是STL提供的一种快捷创建线程的方式,极大方便 ...
最新文章
- display:inline-block 的使用
- 基于JSP实现个人博客
- Radware:安全信息的传送可以加速网络攻击的防御
- iphone导出照片到电脑_iPhone里的照片如何快速导入电脑
- “金融与安全大数据”专题导读
- MyBatis复习(十):注解开发
- AtCoder Grand Contest 004 C - AND Grid(思路题)
- Error inflating class android.webkit.WebView Caused by: ...: String resource ID #0x2040003
- 全国30m土壤质地数据、土壤类型数据、土壤PH、有机质、土壤理化性质数据获取/土壤侵蚀数据/土地利用数据/NPP数据/径流量数据/太阳辐射数据/降雨量数据
- MySql 使用关键字做字段名
- html输入日期算出星座,如何通过日期计算星座
- 外卖联盟高级API - 怎么让小程序跳转到美团小程序领红包并下单
- 机器学习,分类算法(饭店评价的例子)
- git amend如何撤销
- c语言写txt文件fwrite,文件操作 fwrite,该怎么处理
- linux内核原子操作的实现
- 中文检索式问答机器人模型
- Python Basic - read()方法
- 企业邮箱域名怎么填写,企业邮箱号怎么注册?
- Java毕业课设项目名称