在下面的循环中,我使用的是预先计算的结束迭代器:
std::list::iterator end = MyList.end();
for (std::list::iterator it = MyList.begin(); it != end ;)
it = MyList.erase(it);
当删除std :: list中的元素时,MyList.end()是否可以更改其值end != MyList.end()
?
答案 0 :(得分:5)
没有
n3376 23.3.5.4
iterator erase(const_iterator position); iterator erase(const_iterator first, const_iterator last);
效果:仅使迭代器无效并将引用到已擦除的元素。