一.TArray中的元素相等
1.重载一下 元素中的 == 运算符,有时需要重载排序。接下来,我们将id 作为判断结构体的标识。
定义结构体
USTRUCT()
struct FXGEqualStructInfo
{
GENERATED_USTRUCT_BODY()
public:
FXGEqualStructInfo()
{
};
FXGEqualStructInfo(int32 inID)
:ID(inID)
{
};
~FXGEqualStructInfo()
{
};
int32 ID = 0;
bool operator==(const FXGEqualStructInfo& other) const
{
return ID == other.ID?true:false;
}
};
测试,发现相同Struct,相同的ID不会被同时加入,AddUnique使用了重载运算符。
UFUNCTION(BlueprintCallable)
void AddUniqueStruct();
void AWXArrayActor::AddUniqueStruct()
{
TArray<FXGEqualStructInfo> MyStructArray;
MyStructArray.AddUnique(0);
MyStructArray.AddUnique(1);
MyStructArray.AddUnique(1);
MyStructArray.AddUnique(2);
MyStructArray.AddUnique(3);
}