假设我有一个类 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;
如果我向地图添加了一个新的 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;
}
原来的指针(p)被p2替换后会被释放吗?我很确定它会是,但我认为值得询问/分享。