c++中迭代erase list中元素时候,会出现崩溃的issue。
如下代码避免了erase后程序崩溃的issue:
list<string> strlst;
string s1 = "s1";
string s2 = "s2";
string s3 = "s3";
strlst.push_back(s1);
strlst.push_back(s2);
strlst.push_back(s3);
for (auto it=strlst.begin(); it!=strlst.end();) {
if (*it == s2) {
it = strlst.erase(it);
}
else{
it++;
}
}