一、TSet是什么
UE4中,除了TArray动态数组外,还提供了各种各样的模板容器。这一节,我们就介绍集合容器——TSet。类似于TArray,尖括号里面的T是模板类型,可以是任何C++类型。一个集合表示了一组互不重复的数据元素。比如TSet表示了一组float集合,TSet表示了一组FString集合。
二、创建和填充集合
因为这些容器在设计的时候考虑到一致性,所以后面你在学习各种各样的容器,你都会发现它们都具有相同或相似的函数,调用方法也是大同小异。类似TArray,TSet也有Add函数和Emplace函数,举个例子:
TSet set;
set.Add( );
set.Add( );
set.Emplace( );
set.Add( );// 这个操作虽然可以编译运行,但是因为其元素已经存在,所以不会对现有集合发生影响
set.Emplace( );// 同上
注意,集合的内部数据结构是二叉树,而不是简单地按编号排序的,因此不能通过方括号[]来访问集合中的元素。
//set[0] = 4; //试图通过[]操作符来访问集合元素,但这样的操作是非法的
Tset中也有类似于TArray的Push函数,但是不叫Push,那就是Append函数,用法也是和Push一样的。
void Append( const TArray< ElementType > & InElements )
void Append( TArray< ElementType > && InElements )
三