Je dois éviter le coût supplémentaire de la copie et de la destruction de l'objet contenu par un vecteur std :: causé par this answer.Utilisez std :: vector pour construire un objet et l'utiliser
En ce moment je l'utilise comme un std :: vector des pointeurs, mais je ne peux pas appeler std :: vector :: clear() sans supprimer chaque objet avant et je peux utiliser std :: auto_ptr avec std conteneurs.
Je voulais faire quelque chose comme ceci:
vector<MyClass> MyVec;
MyVec.push_back();
MyClass &item = MyVec.back();
Cela créerait un nouvel objet avec le constructeur par défaut, puis je pourrais obtenir une référence et de travailler avec elle.
Des idées dans ce sens?
RÉSOLU: J'ai utilisé la réponse @MSalters avec la suggestion @ Moo-Juices pour utiliser des références C++ 0x rvalue pour utiliser la sémantique std :: move. Basé sur this article.
est C++ 0x une option pour vous afin que vous puissiez profiter de std :: move sémantique? –