【问题标题】:Can an unordered_map inside struct in c++ cause memory leak issues?c++ 中结构内部的 unordered_map 会导致内存泄漏问题吗?
【发布时间】:2020-01-27 23:05:23
【问题描述】:

我在 C++ 中声明一个结构,如下所示:

struct myStruct
{
    int x;
    std::unordered_map<int,int> myMap;
};

然后我使用这个结构创建一个包含“myStruct”条目的 STL 列表。

std::list<myStruct>

我想知道当我将元素添加到我的列表以及我的 unordered_map 时,此设置是否会导致潜在的内存泄漏。

如果它会导致内存泄漏,那么设置它的更好方法是什么?

TIA!

【问题讨论】:

  • 简短的回答:不,它本身不能。任何内存泄漏都只会来自您编写的其他代码,而不是来自容器本身。
  • 如果你不使用new,内存泄漏是相当困难的。

标签: c++ memory-leaks stl


【解决方案1】:

一个好的经验法则是,每次使用关键字 new 时,都需要同时使用关键字 delete。你似乎没有在堆上创建你的列表,所以你应该被覆盖。 STL 在这方面很有弹性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2021-03-23
    • 2021-09-25
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多