|
|
81d9cf3c13
|
fix(iter): 修复反向迭代终止条件及指针解引用错误
|
2026-05-19 19:06:48 +08:00 |
|
|
|
f6cbf4f7d1
|
feat(ustring): 实现查找、替换、格式化对齐,以及索引,包含,计数功能
|
2026-05-19 18:35:24 +08:00 |
|
|
|
ad9f642ada
|
feat(ustring): 支持负索引访问并给uview结构新增类别。
- insert问题是set/get/at接口异常导致。
- set/get/at对外索引禁止访问'\0'。和len和capacity一样,保持对外接口的一致性。
|
2026-05-19 13:50:07 +08:00 |
|
|
|
6b4ef1d775
|
添加字符串比较
|
2026-05-18 18:59:27 +08:00 |
|
|
|
03f81cb8de
|
feat(ustring): 添加 erase/resize 并重构底层实现,优化了strip_left/right的性能
|
2026-05-18 15:40:26 +08:00 |
|
|
|
e33d1cad60
|
refactor(core)!: 重构容器接口区分 reserve 与 resize,并更新ustring_new接口统一uview_t参数
|
2026-05-18 11:43:09 +08:00 |
|
|
|
0f699a5e65
|
feat(ustring): 实现算法,以及ustring字符串模块
- algo 冒泡排序与插入排序
- ustring 字符串创建、拼接、大小写转换及修剪
- ustring 单元测试与演示代码
|
2026-05-18 01:58:17 +08:00 |
|
|
|
917cee5d0b
|
feat(internal): 新增基础类型的通用比较函数
|
2026-05-17 21:28:38 +08:00 |
|
|
|
4396d4d337
|
feat(segarray): 实现动态扩容与惰性初始化
|
2026-05-17 20:49:26 +08:00 |
|
|
|
f5c3b178c5
|
feat(deque): 支持 segarray 后端实现
关于容量有些争议,后续考虑怎么处理。
- 重构 `deque` 源码,使用条件编译适配 `ringbuf` 或 `segarray`
- 修复 `segarray` 扩容逻辑,使用正确的段大小 `_segsize` 进行分配
- 优化 `segarray` 初始化逻辑,支持容量为 0 时的延迟分配
|
2026-05-17 17:08:22 +08:00 |
|
|
|
9ae4aa829c
|
refactor(list)!: 将 list 模块替换为 arraylist
- 移除 list 源码、头文件及测试用例
- 将 demo 及测试迁移至 arraylist
- 在 arraylist 中实现 slice 功能并支持负索引
- 修复 arraylist 负数索引计算逻辑
- 修复 darray 打印函数参数错误
- 优化 mempool 日志输出格式
BREAKING CHANGE: 移除 list 模块;arraylist::slice 返回值改为新列表实例
|
2026-05-17 15:58:31 +08:00 |
|
|
|
82d0167c81
|
feat(mempool)!: 添加内存追踪及修复多处内存泄漏
- 新增 mempool 模块用于统计内存分配次数并检测泄漏
- 启用 UNICSTL_MALLOC_CUSTOM 宏以接管标准库内存函数
- 修复 segarray 销毁时未释放 _mapfree 导致的内存泄漏
- 修复 darray 迭代器 next 方法中错误的对象访问方式
- 调整 segarray 不支持外部缓存
- 修复测试用例中未释放 arraylist 导致的误报
|
2026-05-17 14:13:33 +08:00 |
|
|
|
529cf60218
|
refactor(arraylist): 基于 darray 重构实现并支持负索引
- 将 arraylist 内部实现改为组合 darray 对象,委托核心操作至 darray
- 移除 arraylist 中冗余的内存管理代码(如手动维护 obj、capacity 等)
- 新增负索引支持(如 -1 访问末尾元素),完善 get/set/at 的边界检查
- 优化 darray 源码,使用内联辅助函数(obj_shift, obj_copy)封装指针操作
|
2026-05-17 12:57:20 +08:00 |
|
|
|
72db0be317
|
feat(stl): 新增 arraylist 并统一迭代器顺序枚举类型
- 重构迭代器顺序枚举,引入 linear_order_t、tree_order_t 等通用类型,并替换。
- 修复 darray 中二分查找返回索引计算错误的问题
- 优化 segarray 的内存分配错误处理
- 增强 logger 模块,支持时间戳打印及格式化输出
|
2026-05-17 10:48:19 +08:00 |
|
|
|
15ab80cc4d
|
feat(logger): 新增文件日志功能,帮助我很快排查到了segarray_free的bug
|
2026-05-17 00:49:29 +08:00 |
|
|
|
8a65218105
|
feat(segarray): 实现随机访问,优化迭代器和头尾访问实现逻辑,并与ringbuf对比不同应用场景下的优劣
|
2026-05-16 22:18:59 +08:00 |
|
|
|
115646ecd4
|
refactor(core): 统一内存管理与日志宏接口
|
2026-05-16 17:55:47 +08:00 |
|
|
|
30152bb207
|
docs: 更新架构图与 API 文档,补充 segarray 设计笔记
|
2026-05-16 01:57:07 +08:00 |
|
|
|
0dd45ed7dd
|
refactor(segarray): 段使用rawbuf而不是darray,先按照最简单的方式调试通push和pop等操作
|
2026-05-15 19:01:37 +08:00 |
|
|
|
0236e6e315
|
feat(rawbuf): 新增 rawbuf 模块,做随机访问,支持malloc和静态内存。
(之前我突然对darray理解错了,现在的darray设计就是合理的。注意区分开rawbuf和darray)
|
2026-05-15 15:53:11 +08:00 |
|
|
|
3ceffc938e
|
segarray调试期间,发现我的darray设计的非常不合理,size基于insert,而set有基于size。这样新建的darray不能立刻使用set
|
2026-05-15 13:37:45 +08:00 |
|
|
|
d6a6bacbb0
|
ringbuf: add random access
|
2026-05-15 10:34:25 +08:00 |
|
|
|
dcce634326
|
segarray的流程还不对,今天太晚了,明天再调整。
|
2026-05-15 02:45:21 +08:00 |
|
|
|
fb7ac93623
|
refactor(queue): 统一初始化接口并添加 resize 功能
|
2026-05-15 01:40:59 +08:00 |
|
|
|
7741ac3f40
|
refactor(stack): 统一构造函数并添加扩容与满栈检测
|
2026-05-15 01:10:07 +08:00 |
|
|
|
d36346ce00
|
feat(algo): 新增算法模块并给darray集成排序和查找功能,index底层改为调用search
|
2026-05-15 00:04:04 +08:00 |
|
|
|
f8ba5197a8
|
darray添加iter操作,deque新增resize,更新deque的单元测试
|
2026-05-14 19:22:17 +08:00 |
|
|
|
3fda59ba06
|
refactor(queue):底层修改为deque
|
2026-05-14 18:29:12 +08:00 |
|
|
|
10e95ae23f
|
docs: 更新说明
|
2026-05-14 15:02:35 +08:00 |
|
|
|
8a3455efee
|
refactor(ringbuf)!: 重命名模块并增加动态扩容与静态内存支持
|
2026-05-14 14:15:10 +08:00 |
|
|
|
55cff2c2ba
|
将darray的索引类型修正为 size_t 并 新增栈和队列的嵌入式接口
|
2026-05-14 01:45:28 +08:00 |
|
|
|
f512f72d2e
|
refactor(darray): 优化内存策略并移除动态扩容开关。固定容量场景交由上层封装,darray不再支持。
|
2026-05-14 00:32:49 +08:00 |
|
|
|
864273cef2
|
bugfix(stack): 栈的stack_new宏定义多套了一层sizeof,展开后sizeof(sizeof(int)),让obj_size=8了
|
2026-05-13 21:50:31 +08:00 |
|
|
|
97653622c1
|
stack->peek把data的内存给修改了,后续再排查一下原因
|
2026-05-13 19:27:38 +08:00 |
|
|
|
2278bad0a4
|
feat(perf): 重构性能测试框架(支持多组参数配置)并增加perf_log(利用darray实现并格式化输出)
|
2026-05-13 17:00:39 +08:00 |
|
|
|
c422bc976a
|
perf性能测试代码实现,但测试代码写起来怪怪的,日志打印的信息也不直观。后续再调整吧
|
2026-05-12 23:38:49 +08:00 |
|
|
|
cd6eff28a7
|
ringbuffer重构底层代码,并将obj和index的操作独立成内联函数,另外将deque的底层架构直接修改为ringbuffer
|
2026-05-12 18:42:43 +08:00 |
|
|
|
a58d480ae4
|
ringbuffer调试通过,疑问点:感觉复用darray相对于直接malloc并没有简化多少,只是把计算偏移这部分简化了。
|
2026-05-12 16:29:40 +08:00 |
|
|
|
9a9f18ac40
|
将index、len、size等变量的定义,都配置成size_t而不是uint32_t,至于列表对应的负数索引,先按照int吧,后续有必要再修改成ssize_t
|
2026-05-12 10:36:31 +08:00 |
|
|
|
26eeb65cc9
|
refactor(core)!: 重构链表核心API,增加 const 正确性与自定义断言
- 将所有打印和比较函数的参数指针从 `void*` 修改为 `const void*`,增强类型安全
- 引入自定义断言宏 `unicstl_assert` 及其实现,替换标准 `assert`
- 优化动态数组容量增长策略,新增 `unicstl_new_capacity` 函数
- 重构链表 接口:`push`/`pop` 重命名为 `push_back`/`pop_front`,新增 `push_front`/`pop_back`/`insert`/`remove`/`contains` 方法
- 移除链表结构体中未使用的 `_index_front` 和 `_index_back` 成员
- 在头文件中补充关键函数的时间复杂度注释
|
2026-05-12 02:26:21 +08:00 |
|
|
|
17a9d51437
|
linklist先照搬了queue,后续用到再修改吧。另外,darray中的部分函数传参,我添加了const修饰
|
2026-05-11 19:05:58 +08:00 |
|
|
|
1532d3716c
|
darray实现
|
2026-05-11 15:16:42 +08:00 |
|
|
|
803f489ee7
|
Linux平台编译也通过
|
2026-02-13 18:36:03 +08:00 |
|
|
|
1081cda4fe
|
添加修改日志,定版v0.0.2
|
2025-05-06 11:29:39 +08:00 |
|
|
|
df006ba37a
|
删除非必要assert,否则可能导致demo卡主
|
2025-04-30 23:43:54 +08:00 |
|
|
|
9322db6b62
|
修改common为unicstl_internal,顺便给其他数据结构都添加默认的compare和print_obj接口
|
2025-04-30 23:26:36 +08:00 |
|
|
|
32f2605656
|
基本上完善到我理想中的样子了
|
2025-04-30 15:01:55 +08:00 |
|
|
|
ccae6a9d8f
|
将index索引转换独立出一个函数
|
2025-04-30 14:53:30 +08:00 |
|
|
|
65a60df00b
|
修改变量
|
2025-04-30 14:44:04 +08:00 |
|
|
|
e5ea2efe84
|
改了半天才发现,原来我最初写的才是最优解
|
2025-04-30 14:41:10 +08:00 |
|