# PoolAllocator::PoolAllocator / ~PoolAllocator ```cpp PoolAllocator(size_t blockSize, size_t poolSize, size_t alignment = 8); ~PoolAllocator() override; ``` 构造内存池分配器,预分配 `poolSize` 个大小为 `blockSize` 字节的内存块。内存块按 `alignment` 对齐(默认 8 字节)。内部维护一个空闲块链表来管理分配。析构函数释放整个内存池。 **参数:** - `blockSize` - 每个内存块的大小(字节) - `poolSize` - 内存池中总块数 - `alignment` - 对齐要求,默认为 8 **返回:** 无 **复杂度:** O(n),需要预分配所有块 **示例:** ```cpp #include struct Particle { float x, y, z; float vx, vy, vz; float life; }; // 创建一个能容纳 1000 个 Particle 的内存池,16 字节对齐 PoolAllocator pool(sizeof(Particle), 1000, alignof(Particle)); size_t blockSize = pool.GetBlockSize(); // sizeof(Particle) size_t total = pool.GetTotalBlockCount(); // 1000 size_t free = pool.GetFreeBlockCount(); // 1000 // 分配和释放 void* block = pool.Allocate(); pool.Free(block); ``` ## 相关文档 - [PoolAllocator 总览](pool-allocator.md) - 返回类总览