UE C++ 堆化
一.堆化,就是将TArray里的数组进行堆排序。
不需要你写堆排序算法,直接调用就行了
最后,排出来。从上到下,再从左到右。
二.堆化后,往里面添加元素。UE也给你写好了,加进去后它会重新排列。想当年在学校,还要自己手搓。
三.弹出,两个函数弹出后重排序。都能弹出,但一个会返回弹出的是啥,一个不会。
四.移除堆化后,指定索引的元素。并自动排序
五.这个应该是值,重载 元素符号<,可以定义不同顺序。
六.查询堆顶部的元素。
void AWXArrayActor::XGHeapArray()
{TArray<int32> HeapArr;for (int32 Val = 10; Val != 0; --Val){HeapArr.Add(Val);}// HeapArr == [10,9,8,7,6,5,4,3,2,1]HeapArr.Heapify(); //堆化// HeapArr == [1,2,4,3,6,5,8,10,7,9]HeapArr.HeapPush(4);// HeapArr == [1,2,4,3,4,5,8,10,7,9,6]int32 TopNode;HeapArr.HeapPop(TopNode);// TopNode == 1// HeapArr == [2,3,4,6,4,5,8,10,7,9]HeapArr.HeapRemoveAt(1);// HeapArr == [2,4,4,6,9,5,8,10,7]int32 Top = HeapArr.HeapTop();// Top == 2
}
上述是我自己测试的,打断点后会有更清晰的理解