【发布时间】:2011-09-29 20:23:47
【问题描述】:
是否有 STL 实用程序/算法可以对所有对象执行delete *the_object_iterator;?这样我就可以安全地clear()? STL 容器是 set,对象是指向使用 new 创建的 C++ 类的指针。
Boost 似乎是最好的解决方案。我的目标是避免对不可复制的类进行复制构造。
【问题讨论】:
-
考虑使用 Boost.PointerContainer 代替 boost.org/doc/libs/1_47_0/libs/ptr_container/doc/…
-
@Dabbler 不是内置的单行代码
-
在容器中保存指针通常是个坏主意,因为如果容器被意外破坏(例如通过异常),您将没有机会正确清理。
-
... 保存原始(哑)指针。持有智能指针是可以的。事实上,这是一种常见的模式。
标签: c++ boost stl stl-algorithm boost-ptr-container