c++ - 如何更新 TArray 中的唯一项
问题描述
我正在TArray
使用以下方法在 * 中添加和更新唯一项目。
USTRUCT() struct FMyObject
{
GENERATED_BODY()
UPROPERTY(SaveGame) // example for serialization
FName key;
UPROPERTY(SaveGame) // example for serialization
int someContent;
}
UCLASS() class FMyObjectOwner : public UObject
{
GENERATED_BODY()
AddOrReplaceUnique(const FMyObject& newObject)
{
// Remove possibly existing entry.
const auto index = myObjects.IndexOfByKey(newObject.key);
if (index != INDEX_NONE)
{
myObjects.RemoveAtSwap(index, 1, false);
}
// Add new.
myObjects.Add(newObject);
}
UPROPERTY(SaveGame) // example for serialization
TArray<FMyObject> myObjects;
}
是否有更短或更方便的方法(在一个调用中删除和添加?)来更新TArray
使用 UnrealEngine >= 4.24 中的唯一项目?
*我使用 aTArray
而不是 aTMap
或 aTSet
因为我希望它被垃圾收集并被序列化。我不确定后一种容器类型是否支持两者。
解决方案
推荐阅读
- java - 构造函数 Scanner(InputStream) 未定义
- save - pyside 读/写字典列表
- spring-mvc - hibernate Validator 不验证模型类
- python - 删除或合并熊猫数据框中的多索引列而不丢失数据
- python - zlib TypeError:需要一个类似字节的对象,而不是“str”
- php - 无法在 PHP 站点中检索 MySQL 数据
- unity3d - 如何让强化学习代理学习永无止境的跑步者?
- javascript - Jquery弹出模型内容向下滚动问题
- html - 项目加载时更改 Typescript 中的样式
- java - 没有可用的节点 elasticsearch