繁体   English   中英

STL C ++动态内存分配

[英]Stl c++ dynamic memory allocation

我遇到了一些旧代码,我看到了。

typedef std::queue < EventDataPair > EventQueue;
_eventQueue = new EventQueue();

为什么要使用在堆上分配的stl队列? 包含此代码的类是Singleton。

概括地说,什么时候应该在堆上分配一个stl? STL本身是动态的,它们可以在内部使用堆。

此外,您不会在析构函数中分配它的开销吗?

好吧,除非您想在代码中的不同上下文之间共享特定对象,否则没有太多动机来分配堆。

但是,对于某些旧式体系结构,您可能会担心堆栈的大小。

我能想到的一个原因是,避免了从函数返回副本时创建副本的开销。

但是,C ++ 11和move语义不再需要此功能。

看一下Bjarne Stroustrap在谈论的这个示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM