UE官方文档学习 TAarry 查询
这个很简单经常用。
二.GetData()
. GetData(),像C里拿到数组首地址一样。它不具有越界保护机制,StrArr拥有越界保护机制。这个地址在数组不做改变,如扩容等有用。
void AWXArrayActor::WXFindArray()
{TArray<FString> StrArr = { "Hello", "World", "of", "Tomorrow","!" };int32 ArraySize = StrArr.Num();FString* StrPtr = StrArr.GetData();StrPtr[0] = "!";StrPtr[1] = "Tomorrow";StrPtr[2] = "of";StrPtr[3] = "World";StrPtr[4] = "Hello";StrPtr[5];StrArr[5];
}
三.常量要用常量指针来访问,并且不能改。要改需要去常量。
void AWXArrayActor::WXFindArray_Const()
{const TArray< FString> StrArr1 = {TEXT("Hello"), TEXT("World"), TEXT("of"), TEXT("Tomorrow"),TEXT("!") };const FString* A = StrArr1.GetData();
}
四.对不同容器的大小进行询问
测试代码,FString 16个字节,int32 4个字节,uint8一个字节
void AWXArrayActor::WXFindArray_ElemSize()
{TArray< FString> StrArr2 = { "Hello", "World", "of", "Tomorrow","!" };uint32 ElementSize = StrArr2.GetTypeSize();//ElementSize == sizeof(FString);TArray< int32> StrArr3 = { 2,3,4,5,6 };uint32 ElementSize2 = StrArr3.GetTypeSize();TArray< uint8> StrArr4 = { 2,3,4,5,6 };uint32 ElementSize3 = StrArr4.GetTypeSize();
}