-4

我有一个A类:

struct A
{
    std::map<int,int> aa;
}

和 B 类:

struct B
{
    std::map<int,B> bb;
}

如果这些代码处于无限循环中:

B b;
int inx=0;
while(true)
{
    A a;
    a.aa[0] = 0;
    b.bb[inx] = a;
    ++inx;
}

这会导致内存泄漏吗?我想要复制的
所有值到. 我只想知道这是 std::map 指针的实现吗?ab[inx]

4

1 回答 1

0

这会导致内存泄漏吗?

您的程序中没有内存泄漏,但存在编译错误,因为没有为结构 B 定义 operator[]。

假设您在此处添加到地图:

while(true)
{
    A a;
    a[0] = 0;
    b[inx] = a;
    ++inx;
}

没有内存泄漏。内存会增加,直到您使用所有 int 数字,但这是正常的,因为它们必须存储在内存中的某个位置。

于 2012-09-03T05:04:54.967 回答