Files
XCEngine/docs/api/containers/container-array.md

3.1 KiB

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) 设置内存分配器

使用示例

#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);

相关文档