IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> STL:空间配置器 -> 正文阅读

[数据结构与算法]STL:空间配置器

空间配置器

概述

  1. 为什么STL采用两级空间配置器?
  • STL两级空间配置器是如何工作的?
  1. STL第一级内存分配器使用C语言中的malloc、realloc和free函数进行实际的内存分配,而第二级内存分配是使用由16条链表(编号0~15)维护的内存池进行内存分配的
  2. 当所需要的内存大于128个字节时,就使用一级配置器,如果小于或等于128个字节,就使用二级空间配置器去配置
    (1)当所需内存空间大于128个字节时,分配器认为需要的空间已经足够大了,附加信息占用的内存空间相对于所需的内存空间很小了,所以不会导致空间利用率降低太多,所以这时可以使用一级空间配置器,直接去malloc
    (2)当使用二级空间配置器时,首先会根据你所需要的内存空间大小,自动帮你寻找你需要查找第多少号链表,如果链表不为空,直接从链表中拿出来,给用户使用,然后将已经拨出的指针向后移动一位
  3. 若链表指针为空,说明该链表管理的内存块都被使用了,这时需要查看内存池,看看内存池中是否还有空闲内存,如果内存池中还有内存,那么就会从内存池中取空闲内存
    (1)假如用户需要10个字节的内存,然后1号链表(维护16个字节大小的内存块)为空了,那么此时,它就会向内存池要内存,首先它并不是
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:26:29  更:2022-03-11 22:28:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:46:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码