在下面的代码中,如果我尝试删除除最后一个元素之外的任何元素,代码将正常工作。但是,如果我尝试删除最后一个元素,则会引发运行时错误。不知道为什么?在删除循环中向量的最后一个元素时的问题
#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;
}