#include "CoreMinimal.h"
#include "Containers/TArray.h"
// 假设我们有一个自定义的结构体
struct FMyStruct
{
int32 Id;
FString Name;
FMyStruct(int32 InId, const FString& InName)
: Id(InId)
, Name(InName)
{
}
// 用于比较的函数对象
struct Predicate
{
int32 TargetId;
Predicate(int32 InTargetId)
: TargetId(InTargetId)
{
}
bool operator()(const FMyStruct& Other) const
{
return Other.Id == TargetId;
}
};
};
int main()
{
// 创建一个TArray并添加元素
TArray<FMyStruct> MyStructArray;
MyStructArray.Add(FMyStruct(1, "One"));
MyStructArray.Add(FMyStruct(2, "Two"));
MyStructArray.Add(FMyStruct(3, "Three"));
// 使用FindByPredicate查找特定Id的元素
int32 TargetId = 2;
FMyStruct* FoundStruct = MyStructArray.FindByPredicate(FMyStruct::Predicate(TargetId));
if (FoundStruct != nullptr)
{
// 输出找到的元素的名字
printf("Found struct with Id %d and Name %s\n", FoundStruct->Id, *FoundStruct->Name);
}
else
{
printf("No struct found with Id %d\n", TargetId);
}
return 0;
}
UE4 TArray 用FindByPredicate查找结构体成员
最新推荐文章于 2024-07-12 01:14:17 发布
本文展示了如何在C++中使用FMyStruct结构体和TArray容器,通过自定义的Predicate函数对象实现按特定Id查找元素的功能。
摘要由CSDN通过智能技术生成