我只想知道这是否可以正确释放数据。

伪代码:

std::map<std::string, ClassPointer*>::iterator tempIterator;

    for(tempIterator = directory.begin(); tempIterator < directory.end;
        tempIterator++)
        delete &tempIterator;

最佳答案

由于目录存储原始指针,因此有必要在必要时删除这些指针。

std::map<std::string, ClassPointer*>::iterator tempIterator;

for(tempIterator = directory.begin(); tempIterator < directory.end();
    tempIterator++)
{
    delete tempIterator->second;
}


始终,更好的解决方案是在STL容器中使用智能指针:

 std::map<std::string, std::shared_ptr<ClassPointer>> directory;

08-27 12:26