qt通过迭代器遍历到目标如何移除
时间: 2023-10-05 18:05:27 浏览: 204
qt xml操作 遍历
如果你使用的是 Qt 容器类,例如 QList 或 QMap 等,你可以使用迭代器的 erase() 函数来移除目标元素。示例如下:
```cpp
QList<int> list;
list << 1 << 2 << 3 << 4;
for (auto it = list.begin(); it != list.end(); ) {
if (*it == 3) {
it = list.erase(it); // 移除元素
} else {
++it;
}
}
// 现在 list 中只剩下 1、2 和 4 了
```
需要注意的是,在使用 erase() 函数移除元素时,迭代器会失效。因此,示例中的 `it = list.erase(it)` 语句将返回一个新的迭代器,该迭代器指向被移除元素的下一个元素。如果不更新迭代器,可能会导致程序崩溃或产生未定义行为。
阅读全文