Удаление элементов из вектора
Следующий код 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);
может быть проблема?