# cwj_bplus **Repository Path**: Yi_F/bplus-data-base ## Basic Information - **Project Name**: cwj_bplus - **Description**: 一个基于泛型编程实现的Bplus数据结构,包含节点磁盘持久化功能以及批处理,缓冲功能;同时实现了stl输入迭代器规范,可与stl容器无缝衔接 - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2022-12-13 - **Last Updated**: 2025-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## cwj_bplus 该项目提供了一个可持久化B+树泛型容器,其实现了stl标准的迭代器,故可以和stl中的容器和算法无缝衔接 因为其是可持久化,所以在增删查改时,每次仅仅载入部分节点以减少IO次数 核心文件:`src/CWJBplusSE.h文件` ```c++ BPlusTreetree("tree.db",true); vector>list; for(int i =0;i<100000;i++) { int key = i,val = i+(rand()%10); list.push_back({key,val}); } // 增,删除 tree.insert(1,12); tree.remove(1); // 批量插入 tree.insertUnOrderBatch(list); tree.insertOrderBatch(list); // 查询 auto it = tree.searchRange(12,100); // 返回迭代器 int v;// 输出参数 bool is_has = tree.searchKey(10,v); vector> nums(tree.begin(),tree.end()); ``` ## 压测 ![img.png](image/img.png)