std::map作为类成员

我有一个带有成员 std::map<int,int> 的类 X m_lookupTable。我应该使用以下哪项:

Class X {
...
private:
    std::map<int,int> m_lookupTable;
...
}

或在类的析构函数中使用new和分配delete

class X{
private:
   std::map<int,int>* m_lookupTable;
    X() {
        m_lookupTable = new std::map<int,int>();
    }
    
   ~X(){
       delete m_lookupTable;
    }
} 

什么应该是首选方式,为什么?

回答

我建议使用一个简单的成员。动态分配它,没有任何好处,并且无缘无故地增加了不必要的开销。如果处理不当,它还可能导致内存泄漏。

当您使用作业或复制课程时,您还必须小心,然后您必须自己处理。

如果可能,总是更喜欢自动而不是动态对象。


以上是std::map作为类成员的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>