假设我有一个向量:
vector<Block> myBlocks;
Run Code Online (Sandbox Code Playgroud)
让我们说我这样做:
Block b(10); //Let's assume this will set b's variable: x to 10
myBlocks.push_back(b); //Add it to the vector/list
Run Code Online (Sandbox Code Playgroud)
现在,如果我在其他地方做了这件事:
for(int i = 0; i<myBlocks.size(); i++){
Block c = myBlocks.at(i);
c.x = 15; //Will this work?
}
Run Code Online (Sandbox Code Playgroud)
我把它放在哪里c.x = 15;,是否真的将该块的x位置设置为15?或者只是将临时块的x位置设置为15?如果它只设置临时块,我该如何为实际块设置它?
Block c = myBlocks.at(i);
Run Code Online (Sandbox Code Playgroud)
这c是包含在中的值的副本myBlocks.
Block& c = myBlocks.at(i);
Run Code Online (Sandbox Code Playgroud)
这c是对包含的值的引用(即,别名)myBlocks.
我怀疑你想要后者.