您的位置:首页 > 健康 > 养生 > 贵阳高端网站开发制作_宝安沙井天气_新手做seo怎么做_友情链接怎么购买

贵阳高端网站开发制作_宝安沙井天气_新手做seo怎么做_友情链接怎么购买

2024/12/24 9:47:10 来源:https://blog.csdn.net/2301_80751958/article/details/144644840  浏览:    关键词:贵阳高端网站开发制作_宝安沙井天气_新手做seo怎么做_友情链接怎么购买
贵阳高端网站开发制作_宝安沙井天气_新手做seo怎么做_友情链接怎么购买

我们在使用STL容器中的list的时候会碰见迭代器失效的场景,这无非是在内存上出现了问题

以图中为例,用find函数找出3这个位置,使用it迭代器接收这个位置,进行操作,

当这个位置不为空的时候,我们就删除这个位置,这个时候被删除的3这个位置就成为了野指针,

当我们没有下一步操作的时候,迭代器不会失效

结果正常运行

当我们删除这个位置,这个时候被删除的3这个位置就成为了野指针,

下一步操作是去访问这个it位置并++,迭代器会失效

结果就抛异常了,这时候就出现了迭代器的失效

我们在删除迭代器后想继续对迭代器进行操作,那么如何解决呢?

我们找到list中的erase接口,其返回值是下一位置的迭代器,也就是说我们可以使用it来接受这个值,

由于是返回的下一位置的迭代器,++it会错过一个位置,这里我们可以使用if else语句来操作

结果就可以对it迭代器正常操作了

到这里我们讲解完毕

如果对您有帮助的话点一个免费的赞和收藏叭!

由于作者水平不足,如有任何错误,请读者在评论区交流!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com