ue4 两个TArray如何取交集
时间: 2024-05-15 09:14:10 浏览: 271
取两个集合的交集
5星 · 资源好评率100%
你可以使用`TArray::FilterByPredicate`函数和Lambda表达式来实现两个TArray的交集。假设你有两个TArray,分别为`TArray<A>` ArrayA 和 `TArray<A>` ArrayB,那么可以按照以下步骤来取交集:
1. 定义一个Lambda表达式,该表达式将用于过滤ArrayA中的元素。在Lambda表达式中,使用`TArray::Contains`函数检查元素是否同时存在于ArrayB中。
```C++
auto FilterPredicate = [&ArrayB](const A& Element) -> bool
{
return ArrayB.Contains(Element);
};
```
2. 使用`TArray::FilterByPredicate`函数过滤ArrayA中的元素,并将结果存储在一个新的TArray中。
```C++
TArray<A> Intersection;
ArrayA.FilterByPredicate(FilterPredicate, Intersection);
```
3. 现在,Intersection中将只包含同时存在于ArrayA和ArrayB中的元素,这就是两个TArray的交集。
完整的代码如下:
```C++
auto FilterPredicate = [&ArrayB](const A& Element) -> bool
{
return ArrayB.Contains(Element);
};
TArray<A> Intersection;
ArrayA.FilterByPredicate(FilterPredicate, Intersection);
```
希望这可以帮助到你。
阅读全文