【发布时间】:2023-03-04 01:57:01
【问题描述】:
向std::vector 或std::list 之类的容器声明boost::shared_ptr 究竟有什么意义?
这是一个使用 BOOST_AUTO 的示例。
void someFunction()
{
...
BOOST_AUTO(sharedPtrToContainer, boost::make_shared<std::vector<T>>());
...
}
如果你只需要本地的容器有什么意义吗?有什么好处? shared_ptr 对容器有什么用处?
【问题讨论】:
-
这与向其他任何东西声明
shared_ptr相同:您这样做是因为您想要堆上的对象但不想手动delete它。我认为您真正的问题是,如果容器仅在函数中本地使用,那么在堆上分配容器有什么意义。您确定该函数不会将指针存储在某处以供以后使用吗? -
向量/列表是否共享所有权?如果是这样,共享指针可能有意义。如果不是,则共享指针没有意义。
-
@Wyzard:谢谢你展开这个!
标签: c++ boost containers shared-ptr