si je souhaite avoir un pointeur sur une entrée de ce vector puis-je utiliser un shared_ptr ?
Euh... Pourquoi tu voudrais un pointeur sur un vector ? C'est pour partager ce vecteur entre plusieurs objets?
Si la réponse est oui, alors oui tu peux ! 
Si t'as pas besoin de ce partage, alors tu ne veux pas de pointeurs...
J'ai un peu peur que le destructeur d'un des objets pointés soit appelé dés lors que le shared_ptr est détruit sauf que je ne souhaite pas que le vector initial soit modifié lors de la suppression du shared_ptr..
Oulà, tu n'as pas compris comment fonctionne shared_ptr. Si shared_ptr est détruit, c'est que tu sors de la portée de l'existence de ta donnée. Et donc shared_ptr ou pas, tu n'as plus accès à ta donnée.
pour initialiser le pointeur vous feriez comme ça :
1 2 3
|
vector<Obj> v;
boost::shared_ptr<Obj> p = boost::shared_ptr<Obj>( &v[0] ); |
Surtout pas ! Tu vas mettre deux responsabilités sur le même objet. vector détruit ses éléments quand il est détruit, et shared_ptr aussi... 
boost::shared_ptr<vector<Obj> > p (new vector<Obj>(...));
Partager