UEC++的TArray和TMap的增删改查(UEC++个人学习笔记)

本文介绍了虚幻C++中的TArray动态数组,其优点包括快速、内存效率高和安全性,以及常见的操作如添加、删除和查找。同时,文章也详细讲解了TMap键值对容器的使用,包括增删和查找功能。
摘要由CSDN通过智能技术生成

TArray

TArrayTArray是虚幻C++中的动态数组TArray 特点:速度快,内存消耗小,安全性高。

并且TArray所有的元素均完全为相同类型,不能进行不同元素类型的混合

//Array数组
	//增
	MyArray.Add(10);//将元素添加到数组中
	MyArray.Add(20);
	MyArray.Add(30);
	//如果存在相同元素则不添加,如果不存在则添加
	MyArray.AddUnique(20);
	MyArray.AddUnique(40);

	//调用函数printF
	PrintF();
	//删
	
	MyArray.Remove(20);//删除所有20的值
	MyArray.RemoveAt(0);//移除索引值为0的元素
	MyArray.RemoveSingle(10);//移除首个匹配到的元素
	MyArray.Empty();//清空全部数组
	MyArray.Reset();//重置全部元素所有变为0


	//改
	MyArray.Insert(60, 0);//在0号位置插入一个元素60\
	
	int32& temp = MyArray[0];//取出0索引
	temp = 50;//这样也能修改元素的值

	//查
	MyArray.Contains(10);//查找是否包含某个元素
	MyArray.Find(10);//查找到的第一个元素返回下标
	MyArray.FindLast(10);//反向查找第一个匹配的元素,返回下标

输出

void AMyGameMode::PrintF()
{
	//用迭代器遍历数组打印出来
	for (auto It = MyArray.CreateConstIterator(); It; It++)
	{
		UE_LOG(LogTemp, Warning, TEXT("%d"), *It);
		GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Blue, FString::Printf(TEXT("%d"), *It));
	}
}

TMap

TMap键值对容器,里面数据是成对出现的(key,value),value值通过key值获取,且key值不能重复,key值唯一

//TMap
	//增
	MyMap.Emplace(0, 1);
	MyMap.Emplace(1, 2);
	MyMap.Emplace(2, 3);

	PrintMap();

	//删
	MyMap.Remove(0);//移除key值为0的元素
	MyMap.Empty();//清空数据

	//查找
	MyMap.Contains(1);//查找匹配的Key值是否存在找到返回
	int32* isFind =MyMap.Find(6);//查找匹配的Key值是否存在,找到返回是指针,只进行一次
	const int32* isFind2=MyMap.FindKey(2);//通过查找Vaule的值查找Key返回的是指针
	//分别获取Keys和Values
	TArray<int32>TestKeys;
	TArray<int32>TestValues;
	MyMap.GenerateKeyArray(TestKeys);
	MyMap.GenerateKeyArray(TestValues);

输出

void AMyGameMode::PrintMap()
{
	for (auto& TestMap : MyMap)
	{
		GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Blue, FString::Printf(TEXT("key:%d" "vaule:%d"),TestMap.Key, TestMap.Value));
		UE_LOG(LogTemp, Warning, TEXT("key: %d  vaule : %d"),TestMap.Key,TestMap.Value);
	}

}

笔记总结来源于:【【虚幻5】UE5C++零基础全网全流程开发从入门到进阶教程合集(持续跟新中)】https://www.bilibili.com/video/BV1Dc411f7nx?vd_source=90cb1ac44856e5e826e2bee8aa9d8a41

  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值