首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除ptr_array

清除ptr_array
EN

Stack Overflow用户
提问于 2011-03-23 14:20:08
回答 2查看 385关注 0票数 0

我想清除ptr_array

代码语言:javascript
复制
boost::ptr_array<A, 10> a;
...
a.clear();  // missing

如何清洗ptr容器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-23 14:24:43

它的行为应该类似于数组,并且您不能在C++中清除数组。您可以做的唯一一件事就是将各个元素设置为NULL。

票数 1
EN

Stack Overflow用户

发布于 2011-03-24 03:28:34

根据class synopsis的说法,调用a.release();可以做到这一点,因为文档指出,调用release的后置条件是“所有指针都为空”。

事实上,看一眼实现就可以验证这一点,尽管它的效率低于严格意义上的可能,因为它涉及一个未使用/浪费(出于您的目的)的堆分配:

代码语言:javascript
复制
std::auto_ptr<this_type> release()
{
    std::auto_ptr<this_type> ptr( new this_type );
    this->swap( *ptr );
    return ptr;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5401536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档