- audio: 更新 audio-system 方法文档 - components: 新增 audio-listener/audio-source 组件方法文档,新增 remove-component 方法 - core: 更新 filewriter, types 文档 - math: 更新 box 方法文档 - memory: 更新 proxy-allocator 文档 - resources: 更新 loader 和 texture 文档 - rhi: 更新 opengl 设备、shader、swap-chain 文档 - threading: 更新 mutex 和 task-system 文档
52 lines
1.3 KiB
Markdown
52 lines
1.3 KiB
Markdown
# String::Reserve / Resize
|
||
|
||
```cpp
|
||
void Reserve(SizeType capacity);
|
||
void Resize(SizeType newSize);
|
||
void Resize(SizeType newSize, char fillChar);
|
||
```
|
||
|
||
管理字符串的内存和大小。
|
||
|
||
**参数:**
|
||
- `capacity` - 要预留的最小容量
|
||
- `newSize` - 新的字符串长度
|
||
- `fillChar` - 当扩展字符串时用于填充新增位置的字符,默认为 '\0'
|
||
|
||
**返回:** 无
|
||
|
||
**复杂度:**
|
||
- `Reserve`:最坏 O(n),仅在需要扩展容量时复制数据
|
||
- `Resize`:O(n),当 newSize > Length 时可能需要扩展
|
||
|
||
**示例:**
|
||
```cpp
|
||
#include "XCEngine/Core/Containers/String.h"
|
||
#include <iostream>
|
||
|
||
int main() {
|
||
XCEngine::Containers::String s("Hi");
|
||
|
||
// Reserve - 预分配内存
|
||
s.Reserve(100);
|
||
std::cout << "After Reserve(100), Capacity: " << s.Capacity() << std::endl;
|
||
// 输出: After Reserve(100), Capacity: 100
|
||
|
||
// Resize - 缩短字符串
|
||
s.Resize(1);
|
||
std::cout << "After Resize(1): " << s.CStr() << std::endl; // 输出: H
|
||
|
||
// Resize - 扩展字符串,用 'X' 填充
|
||
s.Resize(5, 'X');
|
||
std::cout << "After Resize(5, 'X'): " << s.CStr() << std::endl; // 输出: HXXXX
|
||
|
||
return 0;
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [String 总览](string.md) - 返回类总览
|
||
- [Length / Capacity](size.md) - 获取长度和容量
|
||
- [Clear](clear.md) - 清空字符串
|