Bon, j'ai essayé avec la dernière version de gcc.
Pour moi, à partir du moment où vecteur contient au moins un élément, ce type d'écriture ne plante pas (ni à la compilation, ni à l'éxécution).
Evidemmment, si on reprend ton code tel quel (cad sans remplir vecteur), ça plante, ce qui est normal. En effet, dans un vector vide, les itérateur .begin() et .end() sont égaux et ne pointent vers rien. Il est alors normal que tu ne puisse supprimer un élément qui n'existe pas !