一.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);
}