在下面的代碼中,如果我嘗試刪除除最後一個元素之外的任何元素,代碼將正常工作。但是,如果我嘗試刪除最後一個元素,則會引發運行時錯誤。不知道爲什麼?在刪除循環中向量的最後一個元素時的問題
#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;
}