UE4 数组元素的删除

**

UE4 中 删除数组元素的方法

**

背景: 在应用开发中, 我们定义了一个 int 或者 string 类型的数组 。比如 int a【6】={3 ,4,4,5,6,8} 。我们要删除 其中所有的 4 。

UE4 中可用的蓝图节点是 remove item 或者 remove Index

初始解决的方法: 我们直接使用 for each loop 通过判断 当时 item 是否等于过滤 的item , 如果是 , 则调用数组 直接删除当前的 Item .

遇到的问题: 我们发现 按照我们的 例子, 只能删除第一个 4 。 第二个 4 是无法删除的。

原因分析: 我们在进行 for each loop 判断时,如果直接删除了 当前的 Item 会 导致 当前的 数组变化。原先是6个元素 直接变成了 5个。 加入原先已经遍历到第二个元素(第一个4),删除4 之后。 下一次 应该是 遍历 第三个元素 。此时对应的就是 5. 直接将第二个4 给忽略了。

解决方案: 我们可以首先 将 数组遍历, 存储所有 需要删除 Item 的 INdex ,组成一个新的 int 类型数组 B。 然后 对此 数组B 的每一个元素进行 处理, 当前 Item - 当前 Index ,构成一个新的数组 C.

使用此 数组C 结合 原先的 数组 a , 在遍历过程中 ,配合指令 remove index 即可实现 删除所有的 特定元素。

猜你喜欢

转载自blog.csdn.net/gaofei7439/article/details/117512495