stl中的list操作异常

iam54155415 2009-03-16 04:40:06
程序是基于MFC单文档的。我在CMainFrame声明了一个成员变量 private: list<HWND> m_listHwnd.有一个成员函数操作它 void fun(){ list<HWND>::iterator it; it = m_listHwnd.end();}. 我在一个新生成的对话框里调用了CMainFrame的fun,运行正常,可是在视类里调用CMainFrame的fun时候,运行到it = m_listHwnd.end()时,程序就出现了异常,说是访问冲突,实在想不明白,为什么在那个对话框调用就正常呢?另外,那个对话框是我新建的一个对话框类,在doc里调用生成的对话框对象。现在实在是郁闷透了,还请各位高手指点迷津
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iam54155415 2009-03-17
  • 打赏
  • 举报
回复
我本来就是用push_back的,可是出现了异常,调试的时候,发现它在push_back里先找到end的位置,就是在这个end出的异常。我现在把list <HWND> m_listHwnd改成全局的了,就没有出现异常。但是原因就是不得其解啊,还请各位高手指点下
9527- 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iam54155415 的回复:]
它应该是可以这样访问的吧,it = m_listHwnd.end()? 如果没有存贮,就返回null.问题是我里面需要进行list的push_back .它就出错,和m_listHwnd.end()出错一样
[/Quote]
你直接用listHwnd.push_back不可以吗,it = m_listHwnd.end()没有存储不一定就是NULL,谁也不知道那块内存是什么
jwpl190 2009-03-16
  • 打赏
  • 举报
回复
帮顶。
chin_chen 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iam54155415 的回复:]
它应该是可以这样访问的吧,it = m_listHwnd.end()? 如果没有存贮,就返回null.问题是我里面需要进行list的push_back .它就出错,和m_listHwnd.end()出错一样
[/Quote]
没看懂你说什么。
for(...;it!=m_listHwnd.end();..)
..{
}
iam54155415 2009-03-16
  • 打赏
  • 举报
回复
它应该是可以这样访问的吧,it = m_listHwnd.end()? 如果没有存贮,就返回null.问题是我里面需要进行list的push_back .它就出错,和m_listHwnd.end()出错一样
chin_chen 2009-03-16
  • 打赏
  • 举报
回复
it = m_listHwnd.end()?
list最后一个元素,不能访问的。 m_listHwnd.end()这个存放着什么,谁也不知道。程序只能访问 m_listHwnd.end()-1.

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧