当前位置:  开发笔记 > 编程语言 > 正文

boost :: shared_ptr标准容器

如何解决《boost::shared_ptr标准容器》经验,为你挑选了1个好方法。

假设我有一个类foo,并希望使用std :: map存储一些boost :: shared_ptrs,例如:

class foo;

typedef boost::shared_ptr foo_sp;
typeded std::map 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替换时,它是否会被释放?我很确定它会,但我认为值得询问/分享.



1> Seb Rose..:

首先,你的问题标题是boost :: auto_ptr,但实际上你的意思是boost :: shared_ptr

是的,原始指针将被释放(如果没有进一步的共享引用).

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有