refactor: reorganize docs into plan/ and add skills/

This commit is contained in:
2026-03-18 17:49:22 +08:00
parent fc7c8f6797
commit 9bad996ecf
143 changed files with 13263 additions and 0 deletions

View File

@@ -0,0 +1,116 @@
# Array
**命名空间**: `XCEngine::Containers`
**类型**: `class` (template)
**描述**: 模板动态数组容器,提供自动扩容的数组实现。
## 概述
`Array<T>` 是一个模板动态数组容器,提供了类似 `std::vector` 的功能,但针对游戏引擎进行了优化。
## 类型别名
| 别名 | 类型 | 描述 |
|------|------|------|
| `Iterator` | `T*` | 迭代器类型 |
| `ConstIterator` | `const T*` | 常量迭代器类型 |
## 公共方法
### 构造/析构
| 方法 | 描述 |
|------|------|
| `Array() = default` | 默认构造函数 |
| `explicit Array(size_t capacity)` | 指定容量的构造函数 |
| `Array(size_t count, const T& value)` | 初始化列表构造函数 |
| `Array(std::initializer_list<T> init)` | initializer_list 构造 |
| `~Array()` | 析构函数 |
### 拷贝/移动构造
| 方法 | 描述 |
|------|------|
| `Array(const Array& other)` | 拷贝构造函数 |
| `Array(Array&& other) noexcept` | 移动构造函数 |
| `Array& operator=(const Array& other)` | 拷贝赋值运算符 |
| `Array& operator=(Array&& other) noexcept` | 移动赋值运算符 |
### 元素访问
| 方法 | 描述 |
|------|------|
| `T& operator[](size_t index)` | 下标访问 |
| `const T& operator[](size_t index) const` | 常量下标访问 |
| `T* Data()` | 获取原始数据指针 |
| `const T* Data() const` | 获取常量数据指针 |
| `T& Front()` | 获取第一个元素 |
| `const T& Front() const` | 获取常量第一个元素 |
| `T& Back()` | 获取最后一个元素 |
| `const T& Back() const` | 获取常量最后一个元素 |
### 容量管理
| 方法 | 描述 |
|------|------|
| `size_t Size() const` | 获取元素数量 |
| `size_t Capacity() const` | 获取容量 |
| `bool Empty() const` | 检查是否为空 |
| `void Clear()` | 清空所有元素 |
| `void Reserve(size_t capacity)` | 预留容量 |
| `void Resize(size_t newSize)` | 调整大小 |
| `void Resize(size_t newSize, const T& value)` | 调整大小并填充默认值 |
### 元素操作
| 方法 | 描述 |
|------|------|
| `void PushBack(const T& value)` | 尾部添加(拷贝) |
| `void PushBack(T&& value)` | 尾部添加(移动) |
| `T& EmplaceBack(Args&&... args)` | 就地构造尾部添加 |
| `void PopBack()` | 尾部移除 |
### 迭代器
| 方法 | 描述 |
|------|------|
| `Iterator begin()` | 获取开始迭代器 |
| `Iterator end()` | 获取结束迭代器 |
| `ConstIterator begin() const` | 获取常量开始迭代器 |
| `ConstIterator end() const` | 获取常量结束迭代器 |
### 内存分配器
| 方法 | 描述 |
|------|------|
| `void SetAllocator(Memory::IAllocator* allocator)` | 设置内存分配器 |
## 使用示例
```cpp
#include <XCEngine/Containers/Array.h>
// 基本用法
Containers::Array<int> arr;
arr.PushBack(1);
arr.PushBack(2);
arr.PushBack(3);
// 使用 initializer_list
Containers::Array<int> arr2 = {1, 2, 3, 4, 5};
// 迭代
for (auto& elem : arr) {
printf("%d\n", elem);
}
// 使用 EmplaceBack
arr.EmplaceBack(4);
```
## 相关文档
- [HashMap](./container-hashmap.md) - 哈希表容器
- [Memory 模块](../memory/memory-overview.md) - 内存分配器