Vector.erase (Iterator) provoca un mal acceso a la memoria
Estoy tratando de hacer un reordenamiento del índice Z devideoObjects
almacenado en unvector
. El plan es identificar elvideoObject
que se colocará en la primera posición delvector
, bórrelo y luego insértelo en la primera posición. Desafortunadamente, elerase()
La función siempre causa mal acceso a la memoria.
Aquí está mi código:
testApp.h:
vector<videoObject> videoObjects;
vector<videoObject>::iterator itVid;
testApp.cpp:
// Get the videoObject which relates to the user event
for(itVid = videoObjects.begin(); itVid != videoObjects.end(); ++itVid) {
if(videoObjects.at(itVid - videoObjects.begin()).isInside(ofPoint(tcur.getX(), tcur.getY()))) {
videoObjects.erase(itVid);
}
}
Esto debería ser tan simple pero simplemente no veo dónde estoy tomando el giro equivocado.