• 技术文章 >后端开发 >C#.Net教程

    简述分配器的作用是什么?

    青灯夜游青灯夜游2020-07-15 14:58:34原创1743

    分配器是C++标准库的重要组成部分,作用是:处理容器对内存的分配与释放请求。换句话说,分配器用于封装STL容器在内存管理上的低层细节。

    分配器的作用

    在C++编程中,分配器(英语:allocator)是C++标准库的重要组成部分。

    C++的库中定义了多种被统称为“容器”的数据结构(如链表、集合等),这些容器的共同特征之一,就是其大小可以在程序的运行时改变;为了实现这一点,进行动态内存分配就显得尤为必要,在此分配器就用于处理容器对内存的分配与释放请求。

    换句话说,分配器用于封装STL容器在内存管理上的低层细节。

    默认情况下,C++标准库使用其自带的通用分配器,但根据具体需要,程序员也可自行定制分配器以替代之。

    分配器最早由亚历山大·斯特潘诺夫作为C++标准模板库(Standard Template Library,简称STL)的一部分发明,其初衷是创造一种能“使库更加灵活,并能独立于底层数据模型的方法”,并允许程序员在库中利用自定义的指针和引用类型;

    但在将标准模板库纳入C++标准时,C++标准委员会意识到对数据模型的完全抽象化处理会带来不可接受的性能损耗,为作折中,标准中对分配器的限制变得更加严格,而有鉴于此,与斯特潘诺夫原先的设想相比,现有标准所描述的分配器可定制程度已大大受限。

    虽然分配器的定制有所限制,但在许多情况下,仍需要用到自定义的分配器,而这一般是为封装对不同类型内存空间(如共享内存与已回收内存)的访问方式,或在使用内存池进行内存分配时提高性能而为。除此以外,从内存占用和运行时间的角度看,在频繁进行少量内存分配的程序中,若引入为之专门定制的分配器,也会获益良多。

    推荐教程:《c++视频教程

    以上就是简述分配器的作用是什么?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:分配器 c++
    上一篇:c语言中putchar()的功能是什么? 下一篇:int占几个字节(c语言)?
    线上培训班

    相关文章推荐

    • 内存分配器dlmalloc 2.8.3源码浅析• Redis采用不同内存分配器碎片率对比• PostgreSQL 堆分配器mmgr详解• C语言中的三目运算符是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网