C++STL源码解析
1、阅读完侯捷老师的《STL源码剖析》,并且看完侯捷老师的相关课程之后,结合自己的理解梳理出来的笔记
2、根据自己学习到的内容,为了加深理解,提升自己的编程能力,搭建了一个min_STL,代码在github中
magic&marvel
长路漫漫其修远兮。努力称成为更好的自己。
展开
-
【STL源码解析】空间适配器allocator(三)第二级空间配置器
文章目录前言一、二级空间配置器__default_alloc_template二、代码1.空间分配&空间释放2.重新填充free_lists3.内存池总结前言在上一篇博文中介绍了第一级空间配置器 ,在第一级空间配置器中,本质上还是使用的malloc来进行空间分配。如果分配的空间较小的时候,使用malloc会导致cookie这些额外空间开销过大(这里可以参考【内存管理】模块的博文)。因此SGI采用二级空间配置器去避免较大的额外开销,更加充分的利用好内存空间。下面介绍第二级空间配置器。一、二级原创 2020-10-30 16:33:48 · 257 阅读 · 0 评论 -
【STL源码解析】空间适配器allocator(二)第一级空间配置器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、空间的配置二、一级空间配置器__malloc_alloc_template2.读入数据总结前言前面介绍了为什么要使用空间配置器,以及在STL源码中,构造函数和析构函数的实现形式。参考博文:空间适配器allocator(一)接下来介绍,STL源码中如何配置内存空间。一、空间的配置C++中的内存分配都是调用::operator new 和 ::operator delete,其本质上还是调用的malloc和free原创 2020-09-16 00:14:32 · 284 阅读 · 0 评论 -
【STL源码解析】SGI源码下载
1、源码下载地址在网上找了很多资料,发现都需要积分,无意中发现了一个博主的博文里面分析的了SGI的源码下载地址:(1)源码的github链接:https://github.com/steveLauwh/SGI-STL(2)原博文链接:https://blog.csdn.net/xp178171640/article/details/102814588...原创 2020-08-27 00:08:14 · 1357 阅读 · 0 评论 -
【STL源码解析】空间适配器allocator(一)构造和析构函数
空间配置器Allocator1、为什么要引入空间配置器?我们在使用STL标准模版库的时候,所有需要操作的对象都是存放在容器中的。当我们在操作容器中的对象时,比如增加一个元素、删除一个元素或者初始化一个容器的时候,都会涉及内存的分配。因此引入空间配置器,用于存放容器中的对象和配置内存。(空间不止内存,还有磁盘或者其他辅助存储介质,在STL中空间配置器allocator的配置对象是内存)2、空间配置器左右&需要实现哪些功能?前面介绍空间适配器主要是为了配置内存空间。在考虑空间需要实现哪些配置器的原创 2020-07-14 00:39:12 · 346 阅读 · 0 评论