Есть ли способ Boost.Assign ptr_vector? - PullRequest
1 голос
/ 24 июня 2010

Обычно так:

#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() где-нибудь еще в коде.)

Заранее спасибо за ответы, возможно, я использую неправильный тип контейнера?

1 Ответ

3 голосов
/ 24 июня 2010

Использовать 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);
...