【发布时间】:2019-01-24 01:52:38
【问题描述】:
我遇到了以下代码的奇怪运行时错误:
#include <algorithm>
#include <vector>
using std::vector;
struct Data
{
int id;
};
int main()
{
vector<Data> mylist;
Data m;
m.id = 10;
mylist.push_back(m);
mylist.erase(std::remove_if(
mylist.begin(),
mylist.end(),
[](const Data &m) {
return m.id>100;
}));
return 0;
}
错误提示:
向量擦除迭代器超出范围
【问题讨论】:
-
@HenriMenke,我已修复 MWE 以创建相同的错误。
-
好吧,我把我的反对票变成了赞成票:)