2010-06-23 8 views
1

Habituellement comme ceci:Existe-t-il un moyen de Boost.Assigner un ptr_vector?

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

Sauf pour:

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

Si vous avez besoin de connaître la raison; J'utilise ptr_vector au lieu de vector seulement ainsi je ne dois pas supprimer des éléments, mais je dois l'initialiser en utilisant Boost.Assign comme je veux que ptr_vector soit const (ne peux pas employer push_back() ou pop_back() n'importe où ailleurs dans le code. Merci d'avance pour vos réponses, il est possible que j'utilise le mauvais type de conteneur?

Répondre

3

Utilisez 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);