如果头文件定义了迭代器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++)
{
}