Мне нужно избежать дополнительных затрат на копирование и уничтожение объекта, содержащегося в std :: vector, вызванного этим ответом .
Прямо сейчас я использую его как стандартный:: vector из указателей, но я не могу вызвать std :: vector :: clear (), не удаляя каждый объект ранее, и я не могу использовать std :: auto_ptr с контейнерами std.
Я хотел сделать что-то вродеthis:
vector<MyClass> MyVec;
MyVec.push_back();
MyClass &item = MyVec.back();
Это создаст новый объект с конструктором по умолчанию, а затем я смогу получить ссылку и поработать с ней.
Есть идеи по этому направлению?
РАЗРЕШЕНО : Я использовал ответ @MSalters с предложением @ Moo-Juices, чтобы использовать C ++ 0x rvalue ссылки, чтобы использовать семантику std :: move.Основано на этой статье .