有一个通常的基类 -> 派生类层次结构,例如:
class Fruit { ... };
class Pear : Fruit { ... };
class Tomato : Fruit { ... };
std::vector<Fruit*> m_fruits;
使用emplace_back
而不是push_back
是否有意义(例如:性能是否更好)?
std::vector::emplace_back( new Pear() );
std::vector::emplace_back( new Tomato() );
std::vector<std::unique_ptr<Fruit>>
可以避免内存泄漏问题,这样答案就显而易见了。 - ipc