zoukankan      html  css  js  c++  java
  • STL源码分析:Allocator

    Allocator译为空间配置器而不是内存配置器,是因为空间也可以是磁盘或其它辅助介质。

    考虚到小型区块所可能造成的内存破碎问题,SGI设计了双层级配置器,第一级配置器直接使用malloc()和free(),第二级配置器则视情况采用不同的策略:当配置区块超过128bytes时,视之为“足够大”,便调用第一级配置器;当配置区块小于128bytes时,视之为“过小”,为了降低额外负担,便采用复杂的memory pool整理方式,而不再求助于第一级配置器。

    内存池

    从内存池中取空间给free list使用,是chunk_alloc()的工作。

    内存基本处理工具

    STL定义有五个全局函数,作用于未初始化空间上。这样的功能对于容器的实现很有帮助。

    分别是用于构造的construct()和用于析构的destroy(),另三个函数是uninitialized_copy(),uninitialized_fill(),uninitialized_fill_n(),分别对应该于高层次函数copy(),fill(),fill_n()。

    参考:《STL源码剖析》

  • 相关阅读:
    启动docker 服务时 虚拟机端口转发 外部无法访问
    ADC滤波处理的十种方法
    ubuntu卸载软件
    Cannot fetch index base URL http://pypi.python.org/simple/
    pip命令详解
    QT入门
    tensorflow学习-第一章
    opencv学习-第一章
    二叉树详解
    C/C++内存地址划分
  • 原文地址:https://www.cnblogs.com/losophy/p/9494508.html
Copyright © 2011-2022 走看看