std :: map按值或指针操作?

时间:2012-09-03 03:51:32

标签: c++ map

我有一个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;
}

会导致内存泄漏吗?
我希望a的所有值都复制到b[inx]。我只是想知道这是std :: map指针的实现吗?

1 个答案:

答案 0 :(得分:0)

  

这会导致内存泄漏吗?

程序中没有内存泄漏,但编译错误,因为没有为struct B定义operator [。

假设你在这里添加地图:

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

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