假设我有一类Foo,并希望使用一个std ::地图存储一些的boost :: shared_ptrs,如:的boost :: shared_ptr的标准集装箱
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替换时是否会被释放?我很确定它会是,但我认为这值得问问/分享。
修改后的问题 - 应该被shared_ptr不auto_ptr, – Rob 2008-09-26 15:02:02
这是“应该_have_” – 2011-11-17 10:30:24