比較兩種初始化對象向量的方法。將push_back對象轉換爲向量內存問題C++
1.
vector<Obj> someVector;
Obj new_obj;
someVector.push_back(new_obj);
2.
vector<Obj*> ptrVector;
Obj* objptr = new Obj();
ptrVector.push_back(objptr);
第一個push_back實際對象而不是對象的指針。矢量push_back是否正在複製正在推送的值?我的問題是,我有巨大的對象和很長的矢量,所以我需要找到一種節省內存的最佳方式。
- 第二種方式更好嗎?
- 是否有其他方法可以獲得對象/指針的向量,以便以後可以找到每個對象並同時使用最少的內存?
如果可以的話,它會在C++ 11中移動它,並且第一個試圖推送一個函數。 – chris
@chris我需要在代碼中明確寫出讓它移動但不復制的東西?或者使用C++ 11指定編譯?或者我不必寫任何它只是爲我做的?那裏的第一個我是一個構造函數。 –
我很好奇;如何「巨大」是你的班級的一個實例? –