UE4+C++开发-(二十八)数组TArray<FString> SaveArray;
·
在 Unreal Engine 的 C++ 中,TArray<FString> SaveArray; 声明了一个存储 FString 类型元素的动态数组(TArray),变量名为 SaveArray。TArray 是 UE 提供的高效容器类,类似于 C++ 标准库的 std::vector,但针对游戏开发场景做了优化(如内存管理、线程安全、序列化支持等)。
详细解析
TArray:UE 的核心容器类,用于存储同类型的元素集合,支持动态扩容、快速访问和高效迭代。FString:UE 中用于存储可变字符串的类型(类似 C++ 的std::string),支持字符串拼接、查找、转换等操作。SaveArray:数组变量名,通常用于存储需要保存或传递的字符串数据(如存档信息、配置项、列表数据等)。
典型用法场景
TArray<FString> 常用于处理字符串集合,例如:
-
存储多条文本数据
cpp
运行
// 初始化并添加元素 TArray<FString> SaveArray; SaveArray.Add(TEXT("玩家名称: 张三")); SaveArray.Add(TEXT("等级: 15")); SaveArray.Add(TEXT("金币: 500")); -
遍历数组元素
cpp
运行
// 遍历打印所有元素 for (const FString& Line : SaveArray) { UE_LOG(LogTemp, Log, TEXT("%s"), *Line); } -
文件读写(保存 / 加载数据)
结合文件操作,将数组内容写入文件(如存档):cpp
运行
// 获取平台文件系统接口 IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile(); FString SavePath = FPaths::ProjectSavedDir() + TEXT("PlayerData.txt"); // 创建文件并写入数组内容 FFileHelper::SaveStringArrayToFile(SaveArray, *SavePath, FFileHelper::FEncodingOptions::AutoDetect, &PlatformFile); // 从文件加载内容到数组 TArray<FString> LoadedArray; FFileHelper::LoadFileToStringArray(LoadedArray, *SavePath, FFileHelper::FEncodingOptions::AutoDetect, &PlatformFile); -
字符串拆分与处理
将长字符串按分隔符拆分为数组:cpp
运行
FString CSVData = TEXT("苹果,香蕉,橙子,西瓜"); TArray<FString> Fruits; CSVData.ParseIntoArray(Fruits, TEXT(","), true); // 按逗号拆分 // Fruits 结果:["苹果", "香蕉", "橙子", "西瓜"]
TArray 的核心方法
SaveArray 可调用 TArray 的常用方法操作元素:
Add(const FString& Element):在数组末尾添加元素。Insert(const FString& Element, int32 Index):在指定索引插入元素。RemoveAt(int32 Index):删除指定索引的元素。Empty():清空数组并释放内存。Num():返回数组元素数量。IsEmpty():判断数组是否为空。operator[](int32 Index):通过索引访问元素(如SaveArray[0])。
优势与注意事项
- 性能优化:
TArray基于连续内存存储,随机访问速度快,适合频繁读写的场景。 - 序列化支持:可直接用于 UE 的序列化系统(如存档、网络同步),无需额外处理。
- 线程安全:提供线程安全的操作方法(如
AddThreadSafe),适合多线程环境。 - 注意索引越界:访问元素时需确保索引在
0 ~ Num()-1范围内,否则会触发断言(调试模式)。
总结:TArray<FString> SaveArray; 是 UE 中存储字符串集合的常用方式,尤其适合处理需要批量操作的文本数据(如存档、配置、列表展示等),结合 TArray 的丰富方法和 UE 的文件操作工具,能高效完成数据的存储与处理。
更多推荐

所有评论(0)