109 C++ STL 分配器概述,使用,工作原理说明 非重点。

一。分配器allocator概述

分配器 (allocator) 是C++ STL库的基石之一,它是一种策略模式,允许用户将内存管理从容器中解耦出来,进行更具体化的操作。通过使用 allocator,我们可以自定义内存的分配和释放方式,从而可以更好地控制内存的使用。

分配器的使用和容器使用 紧密关联。

一般都是使用缺省的分配器

确切的叫做 内存分配器。扮演内存池的角色,但是不一定和内存池的技术一样,猜想一般通过大量减少对malloc()的调用,来节省内存,甚至还有效率的提高。

为何使用allocator


在C++中,内存的申请和释放是一个昂贵的操作,频繁的申请和释放可能导致系统的内存碎片,使程序性能下降。通过使用allocator,我们可以自定义内存的申请和释放方式,减少系统的内存碎片,提高程序的性能。

此外,allocator还有一个重要的作用,那就是将对象的构造和内存的申请分开。在传统的内存申请方式中,我们在申请内存的同时就会调用对象的构造函数,但有时候,我们可能只是想申请内存,而不想立即构造对象,这时候,就可以使用allocator。

二。分配器的使用

在C++ STL中,allocator是一个模板类,我们可以通过为它提供一个类型参数来创建一个特定类型的allocator。以下是一个基本的例子:

 
#include <memory>