将对象添加到向量与在 C++ 中添加指向向量的指针。
例子:
std::vector<Size> buildings;
Size building(buildingWidth, buildingHeight);
buildings.push_back(building);
VS
std::vector<Size*> buildings;
Size *building = new Size(buildingWidth, buildingHeight);
buildings.push_back(building);
哪一个在内存/性能方面更好?
第一个基本上在堆栈上创建一个对象并将其添加到向量中。所以有一个实例化,然后是一个副本到向量中。
第二个在堆上创建一个对象。有一个实例化,但没有复制到向量中。
我对么?