修改特定的項目,我想跟蹤一個項目的一個載體,修改如下:在C++矢量
vector<myObj> v;
myObj obj = myObj(params)
v.push_back(myObj);
obj = myObj(params)
v.push_back(myObj);
obj = myObj(params)
v.push_back(myObj);
myObj* modThis = &v[2];
//modify modThis
但是當我做這樣的事情在我真正的代碼,它只是修改了該對象的副本,而不是修改矢量內的實際對象。我打印了modThis和& v [2]的地址,它們不一樣!我也曾嘗試類似如下:
myObj modThis = v[2];
//modiy myObj
這也似乎只創建對象的副本,並繼續修改副本而不是存儲在矢量原始對象。
如何訪問修改矢量內的對象而不復制項目?我錯過了什麼?
注意:myObj目前有編譯器生成的拷貝構造函數。
或'&modThis '? – NathanOliver
我打印了modThis和&v [2],它們不一樣。 – imjojo42
'v.push_back(myObj);'不會編譯。請提供[mcve](http://stackoverflow.com/help/mcve),以便我們重現它。 – songyuanyao