# nightgale **Repository Path**: guanxp/nightgale ## Basic Information - **Project Name**: nightgale - **Description**: 采用C++编写的两种循环缓冲数组,致力于最高效的存储即访问 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-18 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 关于本项目 采用C++编写的两种循环缓冲数组,致力于最高效的存储即访问。核心思路是采用固定分配的内存块,通过在其中就地创建或销毁对象,避免其他动态内存开销的方法,来存储对象。 目前有两种实现,分别描述如下 ## CycleArray.h 这个版本采用指针串接成循环链表作为iterator来访问内容,避免了越界检查,push操作会稍快,但未实现random access iterator,只是output iterator。此外会增加一些内存开销以存储单向链表指针。 ## CycleArray.hpp 这个版本使用数组索引位置作为iterator来访问内容,插入和访问时需要判断越界,速度比上面的版本稍慢,实现了random access iterator,内存利用率更高,不存在额外的内存消耗。 ## 编译 ### VS Code编译 ``` VS Code打开项目根目录 安装C++ 扩展(若未安装) 按Ctrl+Shift+B 编译 按F5编译并调试 ``` ### shell 编译 ``` 进入项目根目录 mkdir build cd build cmake ../src make ```