社区
C++ 语言
帖子详情
如何判断一个STL迭代器是否还有效?
mxzy55560593
2012-07-05 11:36:33
问题是我保存了一个容器的iterator,但这个迭代器指向的元素可能已经被erase了
我再对这个iterator做任何操作都会崩溃,求助我如何判断这个iterator指向的元素是否还存在?
谢谢
...全文
3128
9
打赏
收藏
如何判断一个STL迭代器是否还有效?
问题是我保存了一个容器的iterator,但这个迭代器指向的元素可能已经被erase了 我再对这个iterator做任何操作都会崩溃,求助我如何判断这个iterator指向的元素是否还存在? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天下第一好大人
2012-07-05
打赏
举报
回复
STL里面的东西似乎都没有为并行做特殊设计。
如果你自己单线程里迭代并同时修改,那可以认为你的代码有问题。
如果是多线程环境,那就需要自己用锁做保护,或者设计支持并行的类(实质是把锁设计在类的内部,但有了锁显然会影响效率)。
qq120848369
2012-07-05
打赏
举报
回复
存一个vector<iterator>, erase之前先去vector里find那个erase掉。
判断是否有效就去vector里找,找到则有效。
可惜,这样做真的值得吗。
IVERS0N
2012-07-05
打赏
举报
回复
无法检查迭代器是否还有效
mc913
2012-07-05
打赏
举报
回复
迭代器相当于一个指针
请问楼主听说过“刻舟求剑”么?
swlilike
2012-07-05
打赏
举报
回复
try
{
}
catch(...)
{
}
想不崩溃试试也行
pathuang68
2012-07-05
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
STL没办法检查迭代器是否失效,因为这些都是程序员自己应该避免的
[/Quote]
++,就是这个说法。
pengzhixi
2012-07-05
打赏
举报
回复
STL没办法检查迭代器是否失效,因为这些都是程序员自己应该避免的
Star-light
2012-07-05
打赏
举报
回复
那就用不会失效的容器。。。
比如list,boost::stable_vector
W170532934
2012-07-05
打赏
举报
回复
一般在Begin和End迭代器之间的都算是有效的。
C++
STL
迭代器
机制剖析.pdf
C++
STL
迭代器
机制剖析 -- C++经典书籍哦
STL
迭代器
类型
STL
迭代器
类型 输入
迭代器
,输出
迭代器
,双向
迭代器
,向前
迭代器
,随机
迭代器
...
朱老师C++课程第3部分3.2.
STL
的容器类和
迭代器
《朱老师带你学C++》属于系列课程《朱有鹏老师热门编程语言全解》的第一部分,主要针对C++语言学习。本课程可以看做是嵌入式linux核心课程中《C语言专题》课程的延续,在学好了C语言前提下继续深度学习C++语言。整个...
C++
STL
迭代器
入门
关于 C++
STL
迭代器
的最佳入门教程之一。 轻松、幽默、干脆、一看就会!却不乏C++编程思想之启发!
STL
简单
迭代器
的实现
介绍博客:http://blog.csdn.net/chengonghao/article/details/51360792
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章