UE TArray 通过Value找key
时间: 2024-11-22 22:48:42 浏览: 5
UE4 Actor遍历的几种方式(如果有纰漏会更新)
在Unreal Engine (UE) 中,TArray 是一个动态数组容器,通常用于存储同类型的对象。如果你想通过 Value 找到对应的 Key,你需要先确保这个 TArray 实际上是一个关联集合(如 TMap 或 TArray<TKeyValuePair>),而不是简单的数值数组。
如果你有一个 TMap<KeyType, ObjectType> 类型的数组(比如 TArray<FString, TArray<int32>>),你可以使用 FMap::Find 函数来查找特定值对应的键。例如:
```cpp
TArray<FString, TArray<int32>> MyArray;
FString TargetValue = "SomeValue";
int32* FoundKeyIndex = nullptr;
// 首先检查目标值是否存在
if (!MyArray.Contains(TargetValue)) {
// 如果找不到,则返回 nullptr
FoundKeyIndex = nullptr;
} else {
// 使用 Find() 查找键的位置
auto KeyIter = MyArray.Find(TargetValue);
if (KeyIter != MyArray.Map().End()) {
FoundKeyIndex = &(*KeyIter).Key(); // 返回找到的键
} else {
// 如果没找到,KeyIter 会指向 Map 的 End()
}
}
```
在这里,`FoundKeyIndex` 将保存找到的键的地址,如果找不到匹配的值,则 `FoundKeyIndex` 为 `nullptr`。
阅读全文