这是一段关于vector的代码。
程序调用erase后,回到for循环又继续使用迭代器,并执行++运算。
erase函数的说明:
iterator erase ( iterator position );
iterator erase ( iterator first, iterator last );
现在只关注函数执行后的副作用和返回值。函数调用后使指向position和first之后的所有迭代器失效。返回值则是一个指向删除的最后一个元素后面的元素的迭代器。所以上面代码中的it在调用erase后就无效了,程序崩溃。
删除,某个元素的话 使用网上这段代码。