对容器的shared_ptr有什么意义?

ale*_*xfr 2 c++ containers boost shared-ptr

实际上,boost::shared_ptr向容器宣布一个std::vector或者是std::list什么意义?

这是一个利用的例子BOOST_AUTO.

void someFunction()
{
  ...
  BOOST_AUTO(sharedPtrToContainer, boost::make_shared<std::vector<T>>());
  ...
}
Run Code Online (Sandbox Code Playgroud)

如果您只需要本地容器,有什么意义吗?有什么好处?a shared_ptr对容器的用途是什么?

Mik*_*our 8

实际上,boost::shared_ptr向容器宣布一个std::vector或者是std::list什么意义?

与使用任何对象类型的共享指针完全相同; 它允许您与其他范围共享对象的所有权.对象恰好是容器没有任何区别.

如果您只需要本地容器,有什么意义吗?

没有; 如果你只需要本地,那么它应该是一个普通的自动对象.

有什么好处?a shared_ptr对容器的用途是什么?

如果您需要将其生命周期延长到当前范围之外,那么您将需要动态创建和销毁它,然后它的生命周期应该由智能指针管理.