对啊,我列的就是错误写法
【 在 milksea 的大作中提到: 】
: 不能假定容器实现。标准对删除操作是否可能造成迭代器失效是明确规定的。这种写法对链表和关联容器没问题,对数组和vector有性能问题,对deque则是错误实现。只从标准文本较真的话vector也是不保证的。
: C++20引入erase, erase_if算法解决这个问题,确实有点晚了。以前顺序容器与链表可以remove_if还好,关联容器是要自己写。
: 对map,参考实现写法不是在删除时用i++而是利用erase返回值写 i=c.erase(i),更合理一些。
: ...................
--
FROM 61.48.130.*