scoped_ptr中对象的快速分配?

时间:2012-04-03 02:05:20

标签: c++ heap allocator scoped-ptr

由于scoped_ptr保证给定线程中的所有对象都以类似堆栈的方式分配,为scoped_ptr下的对象指定“自定义堆”的最不痛苦的方法是什么? /> (例如vector s,deque s,string s等。

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

1 个答案:

答案 0 :(得分:3)

scoped_ptr和智能指针一般来说,对它们所拥有的对象分配的内存无效。如果由于某种原因您有{{​​1}},则scoped_ptr<std::vector<T> >存储在std::vector<T>*中的事实与scoped_ptr获取其内存的位置完全无关。

当然,std::vector<T>已经是一个RAII类型(就像所有其他标准库类一样),它会在自身之后进行清理,这意味着将它们放在std::vector<T>中是毫无意义的。< / p>

简而言之,您所谈论的内容与scoped_ptr完全没有关系。它与您用于容器类的 allocators 有关。你正在咆哮错误的树。