使用QMap插入键值对,如果存在了会报错吗
时间: 2024-03-04 20:48:56 浏览: 318
Qt之QMap的使用分析
5星 · 资源好评率100%
如果在使用 QMap 的 insert() 函数插入键值对时,已经存在相同的键,那么旧的键值对会被新的键值对替换,不会报错。例如:
```cpp
QMap<QString, int> map;
map.insert("apple", 3);
map.insert("banana", 2);
map.insert("orange", 4);
map.insert("banana", 1); // 插入一个已经存在的键
// 输出 map 中所有键值对
for (auto it = map.constBegin(); it != map.constEnd(); ++it) {
qDebug() << it.key() << it.value();
}
```
输出结果如下:
```
"apple" 3
"banana" 1
"orange" 4
```
在这个例子中,我们创建了一个 QMap,并插入了三个键值对。然后我们再次插入一个键为 "banana" 的键值对,但是它的值不同。由于 "banana" 已经存在于 QMap 中,原有的键值对被新的键值对覆盖了。
如果你希望保留旧的键值对,可以使用 QMultiMap 类型代替 QMap。QMultiMap 允许有重复的键。
阅读全文