Files
XCSDD/docs/api/containers/array/copy-move-constructor.md
ssdfasd 58a83f445a fix: improve doc link navigation and tree display
- Fix link resolution with proper relative/absolute path handling
- Improve link styling with underline decoration
- Hide leaf nodes from tree, only show directories
- Fix log file path for packaged app
2026-03-19 12:44:08 +08:00

45 lines
1000 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Array::Array() - 拷贝/移动构造
```cpp
Array(const Array& other);
Array(Array&& other) noexcept;
```
拷贝或移动构造一个新数组。
**拷贝构造:**
- 分配与 `other` 相同容量的内存
- 拷贝 `other` 中所有元素
**移动构造:**
- 接管 `other` 的所有资源(数据指针、容量、大小)
-`other` 置为空状态(`m_data = nullptr, m_size = 0, m_capacity = 0`
- 不拷贝、不移动任何元素数据,性能 O(1)
**参数:**
- `other` - 源数组
**异常:**
- 拷贝构造:元素拷贝可能抛出异常
- 移动构造:`noexcept`,不抛出异常
**线程安全:** ❌ 构造期间不可并发访问
**示例:**
```cpp
Containers::Array<int> arr1 = {1, 2, 3};
// 拷贝构造
Containers::Array<int> arr2(arr1); // arr2 = {1, 2, 3}
// 移动构造
Containers::Array<int> arr3(std::move(arr1));
// arr3 = {1, 2, 3}
// arr1 现在为空Size() == 0
```
## 相关文档
- [Array 总览](array.md) - 返回类总览