C++中list
list是双向循环容器,所以利用it可以对链表尾进行操作,在insert时可以成功地在尾部插入,但是erase时却出错,请问是什么原因
include<iostream
using namespa
那老哥说得太对了,我之前没仔细看VS开的是Release模式,前面的insert中的--居然可以正常运行,然后erase的--爆炸了,但实际debug中两种都会进行检查直接就告诉你不可以 decrement,千万不要把ub当知识点,实际操作过程中erase会导致迭代器失效,那么应该使用it = l.erase(it);
这种写法获取正确的迭代器,而不是使用莫名巧妙的递增,虽然效果是一样的