Dans le code ci-dessous si j'essaie de supprimer tout élément sauf le dernier le code fonctionne très bien. Mais si j'essaie de supprimer le dernier élément, il génère une erreur d'exécution. Pas certain de pourquoi ?problème dans la suppression du dernier élément de vecteur dans une boucle
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<string> s;
s.push_back("Jacob");
s.push_back("Jamal");
s.push_back("Joseph");
s.push_back("Janardan");
vector<string>::iterator it;
for(it = s.begin(); it != s.end() ; it++)
cout<<*it<<endl;
for(it = s.begin(); it != s.end() ; it++)
if(*it == "Janardan")
s.erase(it);
for(it = s.begin(); it != s.end() ; it++)
cout<<*it<<endl;
return 0;
}