‹ 上一题 下一题 ›

g5-07210. 迭代器·erase 失效 未做

1000 ms 256 MB 测试点 ? 自拟题知识点题GESP-55级·STL客观题单选

有 vector<int> v = {1, 2, 3, 4};,执行 auto it = v.begin() + 1;(此时 it 指向元素 2),接着执行 v.erase(it); 删掉这个元素。之后继续使用这个 it,会发生( )。

  • A. it 仍然有效,而且自动往后移,指向下一个元素 3
  • B. it 仍然有效,继续指向 2,因为 erase 不影响迭代器
  • C. it 已经失效:erase 之后「删除位置之后」的迭代器全部作废,正确姿势是 it = v.erase(it) 接住返回值
  • D. 编译报错:erase 不能传入迭代器,只能传位置编号
未选择
输入
输出

            
答案