你觉得这段代码哪里有问题啊,结果不是对的么
https://blog.csdn.net/xzymmd/article/details/83652726
你的代码里erase()和end()返回的都是有效的迭代器赋给itor,itor不存在失效问题。
下面代码中it和end迭代器在调用erase()之后失效了。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> a{1, 2, 3, 4, 5};
for (auto it = a.begin(), end = a.end(); it != end; ++it)
{
if (*it == 2)
a.erase(it); // it和end失效
cout << *it << ' ';
}
return 0;
}
https://en.cppreference.com/w/cpp/container/vector/erase
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!