查看完整版本: [-- 非排序的key-value容器QKeyValueList --]

QTCN开发网 -> Qt代码秀 -> 非排序的key-value容器QKeyValueList [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

chuong 2012-12-13 16:33

非排序的key-value容器QKeyValueList

因为程序需要存储Key-Value数据,而QMap又会对key值自动排序,所以参考一些论坛回帖,写了这个类。由于没有用hash排序,我认为该类不适合大数据量存储、查询。附上代码给需要的朋友。

  1. 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;
    };



查看完整版本: [-- 非排序的key-value容器QKeyValueList --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled