ue4 两个TArray如何取交集
时间: 2024-05-15 14:14:10 浏览: 302
你可以使用`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);
```
希望这可以帮助到你。
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)