通常是这样的:
#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}}(不能在代码中的任何其他地方使用const
或push_back()
。)
在此先感谢您的回答,我可能使用了错误的容器类型?
答案 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);