以下是相应的等效代码:
std::vector<Foo*> vec;
vec.push_back(NULL);
处理 boost::shared_ptr
时,是否是以下代码?
std::vector< boost::shared_ptr<Foo> > vec;
vec.push_back(boost::shared_ptr<Foo>());
注意:我可能会推回很多这样的对象。我应该在哪里声明一个全局静态nullPtr
对象?那样只需要构造一个对象:
注意:我可能会对很多这样的对象进行推迟。我是否应该在某处声明一个全局静态的nullPtr
对象?这样只需要构建一个对象:
boost::shared_ptr<Foo> nullPtr;
boost::ptr_vector
,它需要更少的开销。 - Philipp