有没有办法Boost.Assign一个ptr_vector?

时间:2010-06-23 21:35:57

标签: c++ boost initialization ptr-vector

通常是这样的:

#include <boost/assign/std/vector.hpp>
vector<int> v;
v += 1,2,3,4,5;

除了:

#include <boost/ptr_container/ptr_vector.hpp>
boost::ptr_vector<int> v;

如果你需要知道原因;我只使用ptr_vector而不是vector,因此我不必删除元素,但我需要使用Boost.Assign对其进行初始化,因为我希望ptr_vector为{{ 1}}(不能在代码中的任何其他地方使用constpush_back()。)

在此先感谢您的回答,我可能使用了错误的容器类型?

1 个答案:

答案 0 :(得分:3)

使用Boost.Assigns ptr_list_of()

#include <boost/assign/ptr_list_of.hpp>

// ...
const boost::ptr_vector<int> pv = boost::assign::ptr_list_of<int>(1)(2)(3);