qt5的QMap<QString,QVector<int>>固定数量,且同样的key插入时做判断
时间: 2024-02-05 12:12:35 浏览: 147
如果你想让QMap<QString,QVector<int>>固定数量,并且在插入相同的key时做判断,可以继承QMap并重写insert函数。在重写的insert函数中,你可以先判断QMap中元素的数量是否超过了固定数量,如果超过了就不插入新的元素;否则,再判断插入的key是否已经存在,如果已经存在,则更新对应的value,否则插入新的key-value对。
以下是示例代码:
```cpp
class FixedSizeMap : public QMap<QString, QVector<int>> {
public:
FixedSizeMap(int maxCount) : m_maxCount(maxCount) {}
void insert(const QString &key, const QVector<int> &value) {
if (this->count() >= m_maxCount) {
return;
}
auto iter = this->find(key);
if (iter != this->end()) {
iter.value() = value;
} else {
QMap<QString, QVector<int>>::insert(key, value);
}
}
private:
int m_maxCount;
};
```
在上面的示例代码中,我们通过继承QMap并重写insert函数,实现了固定数量且同样的key插入时做判断的功能。在实际使用时,只需要创建一个FixedSizeMap对象,并调用其insert函数即可。
阅读全文