QT中如何用迭代器遍历删除QMultiMap<QString,QStringList>中所有符合条件的元素,给我完整代码
时间: 2024-02-18 20:02:58 浏览: 156
可以使用QMutableMultiMapIterator来遍历并删除QMultiMap<QString,QStringList>中符合条件的元素。以下是完整的示例代码:
```cpp
// 创建一个QMultiMap<QString, QStringList>
QMultiMap<QString, QStringList> multiMap;
multiMap.insert("fruit", QStringList() << "apple" << "banana" << "orange");
multiMap.insert("vegetable", QStringList() << "carrot" << "broccoli" << "spinach");
multiMap.insert("meat", QStringList() << "beef" << "pork" << "chicken");
// 创建一个迭代器并遍历
QMutableMultiMapIterator<QString, QStringList> it(multiMap);
while (it.hasNext()) {
it.next();
// 判断是否符合条件
if (it.key() == "fruit") {
// 删除符合条件的元素
it.remove();
}
}
// 输出剩余的元素
for (auto key : multiMap.uniqueKeys()) {
qDebug() << key << ":" << multiMap.values(key);
}
```
此示例遍历并删除了所有键为"fruit"的元素,并输出了剩余的元素。注意,当使用QMutableMultiMapIterator删除元素时,必须使用`it.next()`来获取下一个元素,否则会导致迭代器失效。
阅读全文
相关推荐
















