scoped_ptr中对象的快速分配
Very fast allocation for objects in scoped_ptr?
由于scoped_ptr
保证给定线程中的所有对象都以类似堆栈的方式分配,那么为scoped_ptr
下的对象指定"自定义堆"最不痛苦的方法是什么
(例如,对于vector
s、deque
s、string
s等)
(这将使我们几乎完全避免传统的堆开销,获得一个几乎与堆栈一样快但与堆一样大的池。)
scoped_ptr
和智能指针通常对它们所持有的对象分配的内存没有任何影响。如果出于某种原因,您有一个scoped_ptr<std::vector<T> >
,那么std::vector<T>*
存储在scoped_ptr
中的事实与std::vector<T>
从哪里获得内存完全无关。
当然,事实上std::vector<T>
已经是一个RAII类型(像所有其他标准库类一样),它会在自己之后清理,这意味着将它们粘贴在scoped_ptr
中是毫无意义的。
简而言之,您所说的与scoped_ptr
完全无关。它与用于容器类的分配器有关。你找错树了。
相关文章:
- 使用操作重载对象重新分配对象
- 静态分配对象的值初始化
- C++ 将抽象类型的动态分配对象传递给函数并存储在向量中
- 堆分配对象中的堆栈对象在 c++ 中在哪里分配?
- 在 c++ 的构造函数中分配对象向量时出错
- 动态分配对象中的字段-动态分配更好还是静态分配更好?C++
- 操作后通过运算符分配对象
- 如何捕获源自静态分配对象的构造函数的异常?
- 在C++中,当重新分配对象时,为什么构造函数在析构函数之前触发?
- 如何使用每个对象的单个构造函数参数动态分配C++对象数组?
- 将动态分配对象传递到 boost::any 构造函数中
- 混合指向已分配对象和作用域对象的指针
- C 删除指向动态分配对象的指针
- 有关动态分配对象的问题
- 类的堆分配对象是否在其作用域之后但在 C++ 中调用其析构函数之前处于活动状态
- C++ 中的黑白堆分配对象和堆栈分配对象的性能差异
- 是隐式创建的默认构造函数,负责分配对象内存
- 如何删除用于动态分配对象的智能指针
- 分配对象数组时如何初始化每个对象
- 用于堆栈分配对象的C++虚拟析构函数内联