- 重组文档目录结构: 每个模块的概述页移动到模块子目录 - 重命名 index.md 为 main.md - 修正所有模块文档中的错误: - math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式 - containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节 - core: 修复 types 链接错误 - debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI - memory: 修复头文件路径, malloc vs operator new, 新增方法文档 - resources: 修复 Shader/Texture 链接错误 - threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接 - 验证: fix_links.py 确认 0 个断裂引用
1.3 KiB
1.3 KiB
String::Reserve / Resize
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 时可能需要扩展
示例:
#include "XCEngine/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 总览 - 返回类总览
- Length / Capacity - 获取长度和容量
- Clear - 清空字符串