请你来介绍一下STL的allocaotr?
-
STL的分配器用于封装STL容器在内存管理上的底层细节。在C++中,其内存配置和释放如下:
new运算分两个阶段:(1)调用::operator new配置内存;(2)调用对象构造函数构造对象内容
delete运算分两个阶段:(1)调用对象希构函数;(2)掉员工::operator delete释放内存
为了精密分工,STL allocator将两个阶段操作区分开来:内存配置有alloc::allocate()负责,内存释放由alloc::deallocate()负责;对象构造由::construct()负责,对象析构由::destroy()负责。
同时为了提升内存管理的效率,减少申请小内存造成的内存碎片问题,SGI STL采用了两级配置器,当分配的空间大小超过128B时,会使用第一级空间配置器;当分配的空间大小小于128B时,将使用第二级空间配置器。第一级空间配置器直接使用malloc()、realloc()、free()函数进行内存空间的分配和释放,而第二级空间配置器采用了内存池技术,通过空闲链表来管理内存。
-
请你来介绍一下udp的connect函数
2020-01-30 关注 0 浏览546 1答案
-
请你来介绍一下5种IO模型
2020-01-30 关注 0 浏览487 1答案
-
请你回答一下STL里resize和reserve的区别?
2020-01-05 关注 0 浏览921 1答案
-
请你来介绍一下各种排序算法及时间复杂度
2020-01-30 关注 0 浏览591 1答案
-
请你介绍一下B+树?
2020-01-30 关注 0 浏览1567 1答案
-
请你介绍一下mysql的MVCC机制
2020-01-30 关注 1 浏览3259 1答案
-
请你自我介绍一下你自己?
2020-12-26 关注 0 浏览121 1答案
-
“请你自我介绍一下”
2022-03-09 关注 0 浏览60 0答案
-
请你介绍一下策略模式?
2020-01-28 关注 0 浏览599 1答案
-
请你介绍一下volatile关键字?
2020-01-28 关注 0 浏览1780 1答案