【发布时间】:2012-02-10 13:45:38
【问题描述】:
以下 C++ 代码用多个对象填充一个向量,然后删除其中一些对象,但看起来它删除了错误的对象:
vector<Photon> photons;
photons = source->emitPhotons(); // fills vector with 300 Photon objects
for (int i=0; i<photons.size(); i++) {
bool useless = false;
// process photon, set useless to true for some
// remove useless photons
if (useless) {
photons.erase(photons.begin()+i);
}
}
我这样做正确吗?我在想photons.erase(photons.begin()+i); 这行可能是问题所在?
【问题讨论】: