C++ std::按值或指针映射操作?

C++ std::按值或指针映射操作?,c++,map,C++,Map,我有一个a级: struct A { std::map<int,int> aa; } 这会导致内存泄漏吗? 我希望将副本的所有值复制到b[inx]。我只是想知道这是std::map指针的实现 这会导致内存泄漏吗 程序中没有内存泄漏,但存在编译错误,因为没有为结构B定义运算符[] 假设您在此处添加到地图: while(true) { A a; a[0] = 0; b[inx] = a; ++inx; } 没有内存泄漏。在使用所有整数之前,内存

我有一个a级:

struct A
{
    std::map<int,int> aa;
}
这会导致内存泄漏吗? 我希望将副本的所有值复制到b[inx]。我只是想知道这是std::map指针的实现

这会导致内存泄漏吗

程序中没有内存泄漏,但存在编译错误,因为没有为结构B定义运算符[]

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

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

没有内存泄漏。在使用所有整数之前,内存将一直增加,但这是正常的,因为它们必须存储在内存中的某个位置。

顺便说一句,您使用的是std::map,而不是std::map。除此之外,A和B都不执行运算符[]:-请发布一个完整的编译示例-您的代码包含了太多的错误,因为我看起来更糟。对于脏代码,我已经修复了它但问题是一样的。
B b;
int inx=0;
while(true)
{
    A a;
    a.aa[0] = 0;
    b.bb[inx] = a;
    ++inx;
}
while(true)
{
    A a;
    a[0] = 0;
    b[inx] = a;
    ++inx;
}