![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
乔木冠华
这个作者很懒,什么都没留下…
展开
-
STL迭代器---萃取
1.知识回顾一级空间配置器中使用了类型萃取空间配置器的内存基本工具uninitialized_copy等当中都会进行一步POD性判断本章重点讲解 类型萃取技术,同时讲述一下迭代器类型萃取1.iterator_traitsiterator_traits如它的名字一样,是对迭代器进行萃取//迭代器内部包含5个型别struct iterator{typedef Category iterator_category;typedef T value_type;typedef Distance原创 2020-12-18 19:30:27 · 1834 阅读 · 0 评论 -
STL空间配置器导航
STL空间配置器—构造和析构STL空间配置器—两级空间配置器简介STL空间配置器—1级空间配置器实现(详细注释)STL空间配置器—2级空间配置器的实现(代码详细注解)STL空间配置器收尾—内存处理基本工具...原创 2020-12-17 22:42:24 · 2130 阅读 · 0 评论 -
STL空间配置器收尾---内存处理基本工具
整体框架在前几期,将前两个部分都讲完了,现在简单地介绍一下内存基本处理工具uninitialized_copy()uninitialized_fill()uninitialized_fill_n()这三个函数对应STL的高层次函数 copy(),fill(),fill_n()这些都是STL算法什么是POD类型?优秀博客:https://www.cnblogs.com/DswCnblog/p/6371071.htmlPOD,全称plain old data,plain代表它是一个普原创 2020-12-17 22:36:06 · 135 阅读 · 0 评论 -
STL空间配置器---2级空间配置器的实现(代码详细注解)
二级空间配置器基本准则:维护16个自由链表,负责16中小型区块的次配置能力 —次层配置内存池通过malloc配置而得,如果内存池不够,就转调一级配置器如果需求的块大于128字节,就转调一级空间配置器二级空间配置器的 次层配置次层配置:每次配置一大块内存,并维护与之对应的自由链 如果下次有相同大小的内存需求,则直接从自由一链表拔出.如果客户释放小额块区,则将内存块插入到自由链表中free_list[16]: 负责管理16个自由链表.每个节点都是union obj类型 小额块区原创 2020-12-17 18:32:09 · 1481 阅读 · 0 评论 -
STL空间配置器---一级空间配置器实现(详细注释)
一级空间配置器要点allocate() 直接使用 malloc(),deallocate()直接使用free()一级空间配置器内部模拟实现了set_new_handler机制为什么要模拟实现new_handler机制呢根本原因是因为没有使用operator new这可能也是一个历史因素//一级空间配置器要求//1. 基本上就是对4个转调函数使用malloc 和free 封装//2. 最为重要的就是处理内存不足的情况暨 set_new_handler////======//1原创 2020-12-17 16:34:00 · 109 阅读 · 0 评论 -
effective c++ new_handler
new_handler行为了解:effective c++ 49什么是new_handler当 operator new无法分配到足够的内存时,他默认会抛出一个异常在抛出异常之前,无法分配到足够的内存之后,operator new会先调用 new_handlernew_handler一班是由客户指定的:所以客户必须调用set_new_handler: ---->参考 set_malloc_handler和my_alloc_handlerset_new_handler的实现原创 2020-12-15 22:57:14 · 209 阅读 · 1 评论 -
STL空间配置器---两级空间配置器简介
整体框架上一篇STL空间配置器—构造和析构讲述了第一个部分由于第二部分比较庞大,所以我决定拆成三次来写完本篇主要是简单介绍一下两级空间配置器的思路,以及提前说一下new_handler机制简单介绍SGI 设计了双层级配置器,第一级配置器直接使用 malloc() 和 free(),第二级则视情况采用不同策略,并采用了复杂的内存池(memory pool) 整理方式。一级空间配置器当配置区块超过128bytes时,将使用一级空间配置器一级空间配置器要点allocate() 直接使用 ma原创 2020-12-15 22:05:34 · 916 阅读 · 2 评论