这是一个假代码示例
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]。
我在想在这里做的正确的事情,就是把自己的头顶几次,然后把它变成一个指针实现,然后继续我的生活。
我是否正确诊断了这一点?还是我需要更多的教育?