QMap 迭代器崩溃分析

如果头文件定义了迭代器QMap<int, QString>::iterator m_iter;QMap容器QMap<int, QString> m_map;

在源文件迭代时会出现崩溃(QMap nextNode):

for (m_iter = m_map.begin; m_iter != m_map.end; m_iter++)

{

}

原因分析:

迭代器有个警告:

Warning: Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read Implicit sharing iterator problem.

警告:隐式共享容器上的迭代器的工作方式与stl -迭代器不完全一样。 当容器上的迭代器处于活动状态时,应避免复制该容器。 有关更多信息,请阅读隐式共享迭代器问题。

解决方案:

重新定义容器和迭代器解决。

QMap<int, QString> map;

QMap<int, QString>::iterator iter;

for (iter = map.begin; iter != map.end; iter++)

{

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值