浅谈Unreal中TArray容器

本文详细介绍了虚幻引擎(Unreal Engine)中TArray容器的特性与使用方法,包括其作为同质容器只能存储相同类型数据、速度快、内存消耗小和安全性高等特点。示例展示了如何构建和遍历TArray,以及如何使用迭代器进行内容查找。强调了TArray在构建时应避免在堆上创建,并给出了具体的代码实现。
摘要由CSDN通过智能技术生成

<UEC++容器>

1.容器是方便存储数据的载体

2.虚幻提供了三种容器:TArry,TMap,TSet。虚幻提供的容器都是同质容器,只能用来存储相同类型的数据。三种容器具备不同的特性,针对不同的特性,我们可以根据使用场景选择操作的容器.

3.虚幻中的容器使用泛型特性进行构建。

TArray 特点: 速度快,内存消耗小,安全性高
TArray为同质容器:其所有元素均完全为相同类型。不能进行不同元素类型的混合!

TArray被设计成值类型 所以无法被继承
不能使用new和delete 在堆上进行创建销毁。元素也是数值类型,为容器拥有。TArray被销毁时元素也会被销毁。TArray不存在共享状态.

构建TArray
TArray<类型名>变量

TArray<FString> Array;

使用例子:
.h文件

TArray<USceneComponent*> PipeGroup;

.CPP文件


	
	for (int32 i = 0; i < 3; i++)
	{
		FString GroupRootName = FString::Printf(TEXT("RootGroup%d"), i);

		USceneComponent * PGroup = CreateDefaultSubobject<USceneComponent>(*GroupRootName);


		FString GroupPipUp = FString::Printf(TEXT("PiUp%d"), i*2);
		UPaperSpriteComponent * UpCom = CreateDefaultSubobject<UPaperSpriteComponent>(*GroupPipUp);

		FString GroupPipDown = FString::Printf(TEXT("PiDown%d"),i*2 + 1);
		UPaperSpriteComponent * DownCom = CreateDefaultSubobject<UPaperSpriteComponent>(*GroupPipDown);

		PGroup->SetupAttachment(RootComponent);
		UpCom->SetupAttachment(PGroup);
		DownCom->SetupAttachment(PGroup);

		UpCom->SetSprite(UpPipeMesh.Object);
		DownCom->SetSprite(DownPipeMesh.Object);

		UpCom->SetRelativeLocation(FVector(0,0,-220));
		DownCom->SetRelativeLocation(FVector(0,0,190));

		PipeGroup.Add(PGroup);

	}

容器在构建时,不要构建为堆对象!直接构建成栈对象!
由于模板类,在构建时必须指出存储数据类型

遍历
//这个变量名是自己定义的

for(auto &变量名::Array) 

使用方法

for(auto &变量名::Array) {
GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Green,*变量名);
}

迭代器方法遍历:

容器的定义

TArray<FString> Myarr;

	for (int32 i = 0; i < 3; i++)
	{
		FString Mydata = FString::Printf(TEXT("Number%d"), i);
		Myarr.Add( Mydata);
	}

迭代器遍历

	for (auto ite = Myarr.CreateIterator();ite; ++ite)
	{
		GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Green,*ite);

	}

TArray容器查找内容

Myarr.Contains(TEXT("查找内容")); //返回值是bool类型 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值