一.TArray概述
它们就相当于C++动态数组Vector,但是被UE封装了,懂得都懂反射嘛,要不一不小心就被回收了。
它真的非常常见,我所用的容器中,它绝对排名第一,第二是TMap。
同类好理解,我平时也常用来存储FVector 或者某个对象的指针,UOBject*或者智能指针。然后使用指针,要先处理对象,是否被垃圾回收,被UPERPERTY引用,再处理TArray里的指针。
二.创建TArray
当物质的那个分配器,就用基于堆的默认分配器,尚未分配内存。
void AWXArrayActor::InitArray()
{
TArray<int32> IntArray1;
TArray<int32> IntArray2;
int32 ArrayNum = IntArray1.Num(); //数组元素个数
int32 ArraySize = IntArray1.GetAllocatedSize(); //数组尺寸
IntArray1.Init(10, 5);
// IntArray == [10,10,10,10,10]
IntArray2 = { 1,2,3,4,5,6 };
ArrayNum = IntArray1.Num();
ArraySize = IntArray1.GetAllocatedSize();
}
输入测试代码,一个5。指5个元素,一个是20个字节。就是5个int32(4字节)的内存空间