Tarry:
//构建时,不允许构建为堆对象,只能构建为栈对象
TArray<FString>StringArray;
//使用初始化函数添加元素
StringArray.Init(TEXT("JIANGI"), 10);
//新语法
for (FString FA : StringArray)
{
UE_LOG(LogTemp, Log, TEXT("%s"), *FA);
}
//ADD添加元素到数组末尾,返回当前元素添加在数组的下标
INT32 Array1 = StringArray.Add(TEXT("CAIJIN"));
//Emplace函数,将元素添加到数组的末尾,返回下标
StringArray.AddUnique(TEXT("VR"));
//Append函数,可以复制普通数组到TArry中
//ARRAY_COUNT,是用来获取数组长度的
FString Data[4]{ TEXT("100") };
StringArray.Append(Data,ARRAY_COUNT(Data));
//Insert函数,插入
//插入元素,插入的位置不能超出容器的大小
//插入后,该位置原来元素,向后排列
//第一个参数:要插入的元素
//第二个元素,插入的数组下标位置
StringArray.Insert(TEXT("sudent"), 5);
//Num()获取TArray容器的元素的个数
for (int32 i = 0; i < StringArray.Num(); i++)
{
UE_LOG(LogTemp, Log, TEXT("%s"), *StringArray[i]);
}
//SetNum函数,用来设置容器的大小
TArray<int32> IntArray;
IntArray.SetNum(20);
for (auto i : IntArray)
{
UE_LOG(LogTemp, Log, TEXT("%d"), i);//打印20个0
}
//迭代器 不允许修改元素个数,以及添加和移除。
TArray<FString>FSArray;
FSArray.Init(TEXT("xi"),10);
//CreatIterator()创建迭代器函数,可以通过迭代器修改元素
for (auto It = FSArray.CreateIterator(); It; ++It)
{
//修改FSArray元素
*It = FString(TEXT("HA"));
UE_LOG(LogTemp, Log, TEXT("%s"), **It);
}
//CreatConstIterator()创建迭代器函数,只能读取,不能修改容器大小,和移除元素
for (auto It = FSArray.CreateConstIterator(); It; ++It)
{
UE_LOG(LogTemp, Log, TEXT("%s"), **It);
}
FString* FSData = FSArray.GetData();
//查询函数
//1.IsValidInde(5)数组在该下标中的元素是否有效
//返回一个布尔值
FSArray.IsValidIndex(5);
//返回FSArray容器中的最后一个元素
FSArray.Last();
//返回数组倒数第三个元素
FSArray.Last(3);
//返回FSArray容器中第一个元素
FSArray.Top();
//Contains(),包含,返回布尔值
FSArray.Contains(TEXT("HA"));
//Find(),查询,返回该元素在数组中的下标,如果没有查到,返回-1
FSArray.Find(TEXT("HA"));
//查询给定的元素的所在位置,将位置索引设置到Index,返回布尔值
//既能返回布尔,也会返回元素所在位置
int32 Index = 0;
FSArray.Find(TEXT("HA"), Index);
//移除函数
//在容器中移除给定的元素,返回移除的元素个数
int32 RemoveNum=FSArray.Remove(TEXT("HA"));
//移除容器中找到的第一个给定元素
//返回0则容器中没有这个元素
//返回1则移除成功
int32 RemoveIndex=FSArray.RemoveSingle(TEXT("HA"));
//移除给定下标位置的元素
FSArray.RemoveAt(3);
//清空容器
FSArray.Empty();
Map:
//构建TMap容器,键值类型为FString,元素类型为int32
TMap<FString, int32>Map;
//1.添加元素
//注意:添加Map容器中已有的键值,会覆盖之前对应的元素
Map.Add(TEXT("K1"), 111);
//添加元素的时候,只添加键值,会使用默认元素值
Map.Add(TEXT("K2"));
//可以用以下方法修改数据内容,但是不能添加
Map[(TEXT("K2"))] = 1234;
TMap<FString, int32>Map1;
Map1.Append(Map);
//遍历操作
for (auto Item : Map)
{
Item.Key;
Item.Value;
}
//迭代器
for(auto It=Map.CreateIterator(); It; It++)
{
//获得键值
It.Key();
It.Value() = 100;
It->Value;
}
//禁止修改
for (auto It = Map.CreateConstIterator(); It ; It++)
{
It.Key();
//不能修改,It.Value() = 1100;Err;
It->Value;
}
//查询
//1.查询容器中元素的个数
Map.Num();
//检查是否包含给定的键值
Map.Contains(TEXT("HA"));
//返回键值对应的元素指针,如果没有找到内容,则返回空指针
Map.Find(TEXT("HA"));
Map.Remove(TEXT("K1"));
//清空容器
Map.Empty();
TSet
//TSet
TSet<FString>Set1;//普通变量
Set1.Add(TEXT("JIANGXI"));//Add函数是用来添加元素的
TSet<FString>Set2;
Set2.Add(TEXT("CAIJIN"));
Set1.Append(Set2);//Append函数,将Set2中的元素复制一份添加到Set1中
//遍历
for (auto& Temp : Set1)
{
UE_LOG(LogTemp, Log, TEXT("%s"), *Temp);
}
////普通迭代器
//for(auto it=Set1.CreateIterator();it;it++)
//{
//}
////只读迭代器
//for (auto it = Set1.CreateConstIterator(); it; it++)
//{
//}
//查询函数
Set1.Num();//获取容器元素数量
Set2.Contains(TEXT("VR"));//查询是否包含
Set1.Find(TEXT("VR"));//寻找,返回元素的指针
//将Tset容器转换为TArray容器
Set1.Array();
TArray<FString>Array1 = Set1.Array();
Set1.Remove(TEXT("VR"));//移除给定的内容,移除成功返回1 ,移除失败返回0
Set1.Empty();//清空容器,元素为0
Set1.Reset();//移除元素,但不释放空间
注: