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字节)的内存空间

相关推荐
mjhcsp6 小时前
C++ 高精度计算:突破数据类型限制的实现与应用
开发语言·c++·算法·高精度
lixinnnn.6 小时前
C++: map和set
开发语言·c++
大袁同学6 小时前
【二叉搜索树】:程序的“决策树”,排序数据的基石
数据结构·c++·算法·决策树·stl
郝学胜-神的一滴6 小时前
Qt QPushButton 样式完全指南:从基础到高级实现
linux·开发语言·c++·qt·程序人生
沐知全栈开发6 小时前
R MySQL 连接
开发语言
⠀One0ne6 小时前
【C++ 面试题】内存对齐
c++
tryxr6 小时前
变量捕获相关内容
java·开发语言·jvm
Elias不吃糖6 小时前
NebulaChat 框架学习笔记:原子变量与左值引用的工程应用
c++·学习
百锦再6 小时前
大型省级政务平台采用金仓数据库(KingbaseES)
开发语言·数据库·后端·rust·eclipse
biter down7 小时前
C 语言17:位操作符 & | ^:从二进制编码到大小端
c语言·开发语言