我遇到了一些遗留代码,我看到了这一点。
typedef std::queue < EventDataPair > EventQueue;
_eventQueue = new EventQueue();
为什么要使用在Heap上分配的stl队列??? 包含此代码的类是Singleton。
要概括它,何时应该在堆上分配一个stl ??? STL本身就是动态的,它们可能在内部使用堆。
此外,您是否有在析构函数中解除分配的开销?
答案 0 :(得分:2)
好吧,除非您想在代码中的不同上下文之间共享特定对象,否则在堆上分配的动机并不大。
但是对于某些遗留架构,您可能会担心堆栈的大小。
答案 1 :(得分:1)