2010-06-23 191 views
1

通常是这样的:有没有办法让Boost.Assign一个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设置为const(不能在代码中的任何其他位置使用push_back()pop_back()。 )

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

回答

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); 
相关问题