chuong |
2012-12-13 16:33 |
非排序的key-value容器QKeyValueList
因为程序需要存储Key-Value数据,而QMap又会对key值自动排序,所以参考一些论坛回帖,写了这个类。由于没有用hash排序,我认为该类不适合大数据量存储、查询。附上代码给需要的朋友。
- template <typename KeyType, typename ValueType>
class QKeyValueList { public: void insert(KeyType key, ValueType value) { if(KeyList.contains(key)){ ValueList[KeyList.indexOf(key)] = value; }else{ KeyList.append(key); ValueList.append(value); } }
void remove(KeyType key) { if(KeyList.contains(key)){ int i = KeyList.indexOf(key);
ValueList.removeAt(i); KeyList.removeAt(i); } }
ValueType value(KeyType key) { if(KeyList.contains(key)){ return ValueList.value(KeyList.indexOf(key)); }else{ return NULL; } }
int count() { return KeyList.size(); }
private: QList<KeyType> KeyList; QList<ValueType> ValueList; };
|
|