Files
XCSDD/docs/api/containers/array/resize.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

1.0 KiB
Raw Permalink Blame History

Array::Resize()

void Resize(size_t newSize);
void Resize(size_t newSize, const T& value);

调整数组大小。

Resize(newSize)

  • 如果 newSize > Size():在末尾构造 newSize - Size() 个默认构造的元素
  • 如果 newSize < Size():销毁末尾多出的元素
  • 如果 newSize == Size():什么都不做

Resize(newSize, value)

  • 行为同上述,但扩展时使用 value 拷贝构造新元素,而非默认构造

参数:

  • newSize - 新的元素数量
  • value - 扩展时用作填充值的元素

复杂度: O(n),涉及元素构造/析构和可能的内存重新分配

线程安全: 操作期间不可并发访问

示例:

Containers::Array<int> arr = {1, 2, 3};

// 扩展到 5 个元素,新元素默认构造为 0
arr.Resize(5);
// arr = {1, 2, 3, 0, 0}

// 缩减到 2 个元素
arr.Resize(2);
// arr = {1, 2}

// 扩展到 4 个,填充为 -1
arr.Resize(4, -1);
// arr = {1, 2, -1, -1}

相关文档