首页 > 解决方案 > 我应该在 C++ 中显式删除结构吗?

问题描述

假设我有一个这样定义的结构:

struct Barre {
        int startString;
        int endString;

        Barre() { startString = endString = -1; }
        Barre(int s, int e) : startString(s), endString(e) {}
        bool exists() { return startString > -1; }
        };

我将像这样创建这个结构的一个实例,例如:

Barre b = Barre(2, 4);

假设我将它插入到std::map<int, Barre>作为类成员的 a 中,键为例如 3。

如果我然后像上面那样创建另一个 Barre 并用 Barre 结构的这个新实例覆盖键 3 处的映射值,我是否需要显式地delete覆盖我正在覆盖的旧 Barre 对象以防止内存泄漏?或者一旦它不再以这种方式存储在地图中,它就不会持续存在吗?

谢谢你的帮助。

标签: c++oopstructmemory-leaks

解决方案


推荐阅读