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.

Respuestas a la pregunta(4)

Su respuesta a la pregunta