假设我有一些指向类实例的无序映射
(重新表述问题:)如果我想删除该实例,哪个版本是正确的?
或者简单地说
unordered_map
指针,那么从该映射中擦除一个对象是否也会删除该实例?(重新表述问题:)如果我想删除该实例,哪个版本是正确的?
if(it != map.end())
{
delete it->second;
map.erase(it);
}
或者简单地说
if(it != map.end())
map.erase(it);
更新:正如许多人建议的那样,我转而使用shared_ptr
,它非常好用!
unique_ptr
呢?它会自动删除对象。 - MicroVirusstd::shared_ptr
,或者您可以将实际对象存储在映射内:std::unordered_map<std::string, myClass>
。 - bames53