Modern C++ 内存篇0 - std::allocator VS pmr

 这是一篇翻译,原文在Polymorphic Allocators, std::vector Growth and Hacking - C++ Stories

这篇博客非常适合了解pmr的基本用法和特性,故翻译它并作为我的内存篇的开篇。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

C++17 中的多态分配器概念是对标准库中的标准分配器的增强。

它比普通分配器更易于使用,允许容器拥有相同的类型但具有不同的分配器,甚至可以在运行时更改分配器。

让我们看看如何使用它,并且以一种简单的方式来观察 std::vector 容器的增长。

简而言之,多态分配器遵循标准库中分配器的规则,但其核心是使用内存资源(memory resource)对象来执行内存管理。

多态分配器包含一个指向内存资源类的指针,因此它可以使用虚方法调度。您可以在运行时更改内存资源,同时保持分配器的类型不变。这与常规分配器相反,常规分配器使得使用不同分配器的两个容器也成为不同类型。

所有多态分配器的类型都位于单独的命名空间 std::pmr 中(PMR 代表多态内存资源),在头文件 <memory_resource> 中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值