The following C++ code fills a vector with a number of objects and then removes some of these objects, but it looks like it deletes the wrong ones:
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);
    }
}
Am I doing this correctly? I'm thinking the line photons.erase(photons.begin()+i); might be the problem?
 
     
     
     
     
    