从 vector 中取出某些东西并更改其值的最简单方法是什么?这不符合我的预期。
for(int i = 0; i < list.size(); i++) {
someType s = list.at(i);
s.x = 10;
s.y = 20;
s.z = 30;
}
但是,当我打印出someType的x,y,z时,并没有达到我的期望。抱歉,我混淆了Java和C++。
最佳答案
someType s = list.at(i);
您正在索引
i
处复制该元素。在C++中,如果要引用某些内容,则需要明确声明需要引用:someType& s = list.at(i);
// ^ I'm a reference
就像现在所写的那样,您只能操作自己制作的副本,而不能操作容器中的对象。
关于c++ - 从 vector 改变事物,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4048835/