# Array::PushBack() ```cpp void PushBack(const T& value); void PushBack(T&& value); ``` 在数组末尾添加一个元素。 **拷贝版本(`const T&`):** - 如果容量不足(`Size() >= Capacity()`),先扩容(容量翻倍) - 在末尾位置拷贝构造 `value` **移动版本(`T&&`):** - 行为同拷贝版本,但使用移动构造 - 适用于临时对象或右值,避免拷贝开销 **参数:** - `value` - 要添加的元素(拷贝或移动) **复杂度:** 均摊 O(1)。每次添加的摊销成本为常数,因为扩容是翻倍策略。 **线程安全:** ❌ 操作期间不可并发访问 **示例:** ```cpp Containers::Array arr; // 拷贝添加 std::string s = "hello"; arr.PushBack(s); // s 被拷贝 // 移动添加(更高效) arr.PushBack(std::string("world")); // 直接移动构造 // 临时对象会被隐式移动 arr.PushBack("temporary"); // 字符串字面量构造后移动 ``` ## 相关文档 - [Array 总览](array.md) - 返回类总览