修改特定的项目,我想跟踪一个项目的一个载体,修改如下:在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