这是一个伪代码示例
vectorgFred; { // 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 = gFred[z];
实际发生的是gFred [1]覆盖了gFred [0].
我正在考虑在这里做正确的事情,就是把我自己的头脑转过头几次,把它变成一个指针实现并继续我的生活.
我是否正确诊断了这个?还是我需要更多的教育?
是的,你在那里得到一个结构副本.引用不能反弹,即它们在初始化后保持不变.
而你的解决方案也是合适的.尽管如此,Dunno还是打了个招呼.