关于迭代器不相容的问题

D15110461346 2018-05-24 09:11:15

auto a = bcs.begin();
while (a != bcs.end())
{
if ((*a).getCN()==n) {
a = bcs.erase(a);
bc_number--;
total--;
}
else
{
auto e = (*a).getBCS().begin();
while (e != (*a).getBCS().end()) {
if ((*e) == n) {
e = (*a).getBCS().erase(e);
}
else {
e++;
}
}
a++;
}
}

其中bcs是一个类的vector,getBCS()返回一个int的vector,每次运行到while (e != (*a).getBCS().end()) {时就会报错,请各位大神指点下哪里有问题...谢谢各位
...全文
633 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
D15110461346 2018-05-24
  • 打赏
  • 举报
回复
直接用下标访问么
D15110461346 2018-05-24
  • 打赏
  • 举报
回复
请问那应给如何处理呢
真相重于对错 2018-05-24
  • 打赏
  • 举报
回复
不要再对迭代器循环的中间修改容器 
真相重于对错 2018-05-24
  • 打赏
  • 举报
回复
不要再对迭代器循环的中间修改迭代器

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧