gpt4 book ai didi

c++ - STL map and list using in c++的一些问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:08 25 4
gpt4 key购买 nike

您好,我想咨询一下:我有 map 和 list

问题:

下面的析构函数实现是否正确:

   for (map<string,SymbolTableNode*>::iterator i = symbolTable.begin();
i != symbolTable.end(); ++i)
{
delete i;
}
symbolTable.clear();

还是我想念一些内存?

关于列表:

   list<MyClass2*> mylist;
mylist.push_front(new MyClass());
mylist.pop_front();

pop 会调用 delete 吗?或者在这种情况下我有内存泄漏?如果存在泄漏问题,我该怎么做才能避免呢?

谢谢。

最佳答案

没有 pop_front 不会调用删除。在弹出指针之前,您必须自己删除指针。:

list<MyClass2*> mylist;
mylist.push_front(new MyClass());
delete mylist.front();
mylist.pop_front();

析构函数应该是:

delete i->second;

关于c++ - STL map and list using in c++的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5989288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com