关于QMapIterator指向的问题

xie_guo_yi 2017-11-22 10:33:28
for(;mi.hasNext();)//mi是QMap<QString,QString>
{

qDebug()<<" "<<mi.key()<<" "<<mi.next().value();

}
这个可以运行
但是
mi.key();
mi.next();
mi.value();
崩溃断言ASSERT: "item_exists()"失败
mi.hasNext();
mi.key();
mi.next();
mi.value();
也失败。为什么在 for(;mi.hasNext();)//mi是QMap<QString,QString>
{

qDebug()<<" "<<mi.key()<<" "<<mi.next().value();

}里mi.key();不会崩溃
...全文
346 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小诺米2018 2020-05-28
  • 打赏
  • 举报
回复
mi初始指向是 map第一个对象之前的位置 你需要执行 一下 mi.next(); 这个时候 mi才指向第一个, 每执行一次 mi.next,mi就会指向下一个地址 所以刚开始直接调用 mi.value会报错

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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