你不能在迭代器循环内调用vector::erase()函数,因为vector::erase()会使得被删除元素以及其后的所有元素的迭代器失效包括end()正确做法是:你先用查找算法(比如std::find()或你自己写循环查找)找到要指向删除元素的迭代器,在循环体外删除该元素。之后其他操作在另一个迭代器循环内对删除之后的容器进行操作
vector::erase()
end()
std::find()
详情参考https://en.cppreference.com/w/cpp/container/vector/erase