UE5.3 C++ TArray系列(一)

一.TArray概述

它们就相当于C++动态数组Vector,但是被UE封装了,懂得都懂反射嘛,要不一不小心就被回收了。

它真的非常常见,我所用的容器中,它绝对排名第一,第二是TMap。

同类好理解,我平时也常用来存储FVector 或者某个对象的指针,UOBject*或者智能指针。然后使用指针,要先处理对象,是否被垃圾回收,被UPERPERTY引用,再处理TArray里的指针。

二.创建TArray

当物质的那个分配器,就用基于堆的默认分配器,尚未分配内存。

cpp 复制代码
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字节)的内存空间

相关推荐
Bruce-li__17 分钟前
Python多线程利器:重入锁(RLock)详解——原理、实战与避坑指南
开发语言·python
程序员编程指南31 分钟前
Qt 移动应用常见问题与解决方案
c语言·开发语言·c++·qt
kebeiovo1 小时前
C++代码题部分(1)
开发语言·c++
tomato091 小时前
河南萌新联赛2025第(二)场:河南农业大学(补题)
开发语言·c++
幻雨様1 小时前
UE5多人MOBA+GAS 番外篇:将冷却缩减属性应用到技能冷却中
ue5
双力臂4041 小时前
Java注解与反射:从自定义注解到框架设计原理
java·开发语言
潇凝子潇2 小时前
面条式代码(Spaghetti Code)
java·开发语言·log4j
码界奇点2 小时前
Python深度挖掘:openpyxl与pandas高效数据处理实战指南
开发语言·数据库·python·自动化·pandas·python3.11
lzhdim2 小时前
C#开发的Panel里控件拖放例子 - 开源研究系列文章
开发语言·开源·c#
Billy_Zuo2 小时前
Android调用python库和方法的实现
android·开发语言·python