Rob*_*Rob 6 c++ smart-pointers stdmap std
假设我有一个类foo,并希望使用std :: map存储一些boost :: shared_ptrs,例如:
class foo;
typedef boost::shared_ptr<foo> foo_sp;
typeded std::map<int, foo_sp> foo_sp_map;
foo_sp_map m;
Run Code Online (Sandbox Code Playgroud)
如果我向地图添加新的foo_sp但已使用的密钥已存在,是否会删除现有条目?例如:
foo_sp_map m;
void func1()
{
foo_sp p(new foo);
m[0] = p;
}
void func2()
{
foo_sp p2(new foo);
m[0] = p2;
}
Run Code Online (Sandbox Code Playgroud)
当原始指针(p)被p2替换时,它是否会被释放?我很确定它会,但我认为值得询问/分享.