如何处理这个 C++ Multimap 析构函数?
How Do I Deal With This C++ Multimap Destructor?
我是 C++ 的初学者,正在处理简单的程序,我 运行 遇到了一个让我很困惑的问题...我不明白内存泄漏的位置。我理解得更准确,但我无法正确编写析构函数。我寻求帮助。
这里是 class DBMAP
class DBMAP
{
private:
multimap < int, Volkov_1* > setMAP;
public:
DBMAP() {};
DBMAP(DB& db)(DB & db)
{
db.copyM(*this);
};
void addM(Volkov_1* b)
{
setMAP.insert(pair<int, Volkov_1*>(*b->x, b));
};
~DBMAP()
//for (multimap< int, Volkov_1* >::iterator it = setMAP.begin(); it != setMAP.end(); ++it)
// delete* it;;??
};
~DBMAP()
{
for (multimap< int, Volkov_1* >::iterator it = setMAP.begin(); it != setMAP.end(); ++it)
delete it->second;
}
多图迭代器指向一对值。对中的第一个是键,第二个是值。那就是你要删除的指针。
我是 C++ 的初学者,正在处理简单的程序,我 运行 遇到了一个让我很困惑的问题...我不明白内存泄漏的位置。我理解得更准确,但我无法正确编写析构函数。我寻求帮助。
这里是 class DBMAP
class DBMAP
{
private:
multimap < int, Volkov_1* > setMAP;
public:
DBMAP() {};
DBMAP(DB& db)(DB & db)
{
db.copyM(*this);
};
void addM(Volkov_1* b)
{
setMAP.insert(pair<int, Volkov_1*>(*b->x, b));
};
~DBMAP()
//for (multimap< int, Volkov_1* >::iterator it = setMAP.begin(); it != setMAP.end(); ++it)
// delete* it;;??
};
~DBMAP()
{
for (multimap< int, Volkov_1* >::iterator it = setMAP.begin(); it != setMAP.end(); ++it)
delete it->second;
}
多图迭代器指向一对值。对中的第一个是键,第二个是值。那就是你要删除的指针。