c++ - 正确使用 std::map 作为类成员

标签 c++ pointers map

过去我总是创建这样的 map :

class TestClass
{
    private:
        std::map<int,int> *mapA;
};

TestClass::TestClass
{
    mapA = new std::map<int,int>();
}

TestClass::~TestClass
{
    mapA->clear(); // not necessary
    delete mapA;
}

所以,现在我在 Stackoverflow 上到处阅读:尽可能避免指针

目前我想创建没有指针和 new 的映射(不需要自己删除对象,并且内存泄漏的危险较小)!

class TestClass
{
    public:
        TestClass() : mapA() // this is also needed?
        {};
    private:
        std::map<int,int> mapA;
};

正确创建 map 所​​需的任何其他步骤?

感谢您的帮助和/或澄清!

最佳答案

不,就是这样,您不需要在构造函数中显式初始化它。

关于c++ - 正确使用 std::map 作为类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045922/

相关文章:

java - 具有多个参数的 JNI 自定义异常

C++ 多线程应用程序永远挂起

c - strlen函数的理解——const char *s赋值给const char *sc

android - 在膨胀相对布局时出错

java - Map.containsKey() 有用吗?

c++ - 是否有 std::noncopyable (或等价物)?

c++ - 做系统();命令的工作方式与批处理命令完全相同?

c++ - 用整数填充自定义整数数组

java - C++/Java 引用变量

JavaScript Object vs Map - 如何处理特殊键?