gpt4 book ai didi

c++ - 为什么会出现运行时错误 : Vector erase iterator outside range

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:51 28 4
gpt4 key购买 nike

我遇到了以下代码的奇怪运行时错误:

#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;
}

错误说:

Vector erase iterator outside range

Screenshot

我不是在解决了类似Ref1的问题之后, Ref2但意识到问题的原因以及我是否做错了什么。

最佳答案

正确的形式是

mylist.erase(
std::remove_if(mylist.begin(),mylist.end(),lambda),
mylist.end());

您还需要将 end 传递给删除。

关于c++ - 为什么会出现运行时错误 : Vector erase iterator outside range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51888304/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com