遍历方式1:
QList<TimezoneItem *> m_zoneList;
QList<TimezoneItem *>::Iterator iter = m_zoneList.begin();
for (; iter != m_zoneList.end(); iter++) {
if (edit) {
(*iter)->toRemoveMode();
} else {
(*iter)->toNormalMode();
}
}
遍历方式2:
for (auto it = m_zoneList.begin(); it != m_zoneList.end()? {
TimezoneItem* item = (*it);
if (item->timeZone().getZoneName() == zone.getZoneName()) {
item->setVisible(false);
//将迭代器中的下一个元素赋值给it,相当于++it
it = m_zoneList.erase(it);
//然后再对上一个迭代器进行删除
item->deleteLater();
} else {
item->toNormalMode();
//没有满足条件的时候,手动++it
++it;
}