StorAge存储简介:
该文件下有两个目录
Source Code:源代码
Target FIle:目标文件(DLL,LIB)
该存储库使用模版方式实现,由于编译器不能很好的将模版类导出实现代码分割,所以只导出了LIB库,使用时可能报错,建议使用多文件编程的方式调用本库,因为模版函数需要调用时才会被编译,所以很多情况下会出现无法解析的符号!
使用方法:
List<int> ii;
Hash<char*> strii;
List类介绍:
//默认构造
List();
//长度构造
List(int Len);
//修改数据
STORAGE_FUNC_I Modify(int ArrIndex, T IutPut_Data);
//数据置0
STORAGE_FUNC_V DataMet();
//获取头索引
STORAGE_FUNC_I Hand();
//获取尾索引
STORAGE_FUNC_I End();
//获取中间索引
STORAGE_FUNC_I In();
//寻找数据
STORAGE_FUNC_BL SeekData(T SeekData);
STORAGE_FUNC_BL SeekDataToIndex(T SeekData);
//获取数据
T GetData(int ArrIndex);
//扩充增加
STORAGE_FUNC_I ExpanSion(int Len);
//动态变更
STORAGE_FUNC_I ExpanSionEx(int Len);
//Add增加
STORAGE_FUNC_I Add(T ADD_Data);
//获取大小
STORAGE_FUNC_I GetSize();
//重新增长
STORAGE_FUNC_V ReGrow(int Len);
//删除
STORAGE_FUNC_I Delete(int Len);
//删除指定位置上的数据
STORAGE_FUNC_I DeleteIndex(int Index);
//释放
STORAGE_FUNC_V Relete();
~List();
//关联式Id操作
//为段增加id
STORAGE_FUNC_I AddDataId(int Index, char *Id);
//通过ID找到段索引
STORAGE_FUNC_I GetIdToIndex(char* Id);
//通过ID获取数据
T GetIdToData(char* Id);
//删除关联Id,删除Id不会连同数据一并删除
STORAGE_FUNC_I DeleteId(char* Id);
//删除关联Id,同时删除数据
STORAGE_FUNC_I DeleteIdData(char* Id);
//获取索引关联的Id
STORAGE_FUNC_CP GetIdToIndex(int Index);
//运算符
//+
List & operator + (T AddData);
//-
List & operator - (int Len);
//[]
List & operator [] (int Len);
Hash类介绍:
哈希类不支持开放地址法
原因:
经过测试与分析,不建议使用开放地址法,为了避免不可因素的代码冲突将开放地址法删除!
如果有需要可以在我博客下载到开放地址法的哈希表代码!
//长度构造
Hash(int Len);
//初始化
STORAGE_FUNC_I InI();
//计算哈希
STORAGE_FUNC_I ComputeHash(char* Key);
//查找
STORAGE_FUNC_I LookupData(char* Key);
//压入
STORAGE_FUNC_I Input(char* Key, T Data);
//删除
STORAGE_FUNC_V Delete(char* Key);
//获取
T GetData(char* Key);
//修改
STORAGE_FUNC_I SetData(char* Key, T Data);
//获取大小
STORAGE_FUNC_I GetHashSize();
网盘下载:
链接: https://pan.baidu.com/s/1oQ7u3WJ1V62YxbUIrrHySQ
提取码: hddu
github:https://github.com/beiszhihao/SDT/tree/master/StorAge