这是一个假代码示例
vector<Fred> gFred;
{
// init gFred
Fred &fred = gFred[0];
size_t z = 0;
do
{
fred = gFred[z];
// do odd processing with fred
z++;
}
while (fred.lastElementInSet == 0);
}
引起我注意的是 gFred[0] 被覆盖的事实。这使我认为,与其将 init fred 作为对新元素的引用,
fred = gFred[z];
实际发生的是 gFred[1] 正在覆盖 gFred[0]。
我在想在这里做的正确的事情,就是把自己的头顶几次,然后把它变成一个指针实现,然后继续我的生活。
我是否正确诊断了这一点?还是我需要更多的教育?