scoped_ptr中对象的快速分配

Very fast allocation for objects in scoped_ptr?

本文关键字:分配 对象 ptr scoped      更新时间:2023-10-16

由于scoped_ptr保证给定线程中的所有对象都以类似堆栈的方式分配,那么为scoped_ptr下的对象指定"自定义堆"最不痛苦的方法是什么
(例如,对于vectors、deques、strings等)

(这将使我们几乎完全避免传统的堆开销,获得一个几乎与堆栈一样快但与堆一样大的池。)

scoped_ptr和智能指针通常对它们所持有的对象分配的内存没有任何影响。如果出于某种原因,您有一个scoped_ptr<std::vector<T> >,那么std::vector<T>*存储在scoped_ptr中的事实与std::vector<T>从哪里获得内存完全无关。

当然,事实上std::vector<T>已经是一个RAII类型(像所有其他标准库类一样),它会在自己之后清理,这意味着将它们粘贴在scoped_ptr中是毫无意义的。

简而言之,您所说的与scoped_ptr完全无关。它与用于容器类的分配器有关。你找错树了。