从 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/

10-14 09:13
查看更多