ue4集合类型_[UE4]集合:TSet容器
⼀、TSet是什么
UE4中,除了TArray动态数组外,还提供了各种各样的模板容器。这⼀节,我们就介绍集合容器——TSet。类似于TArray,尖括号⾥⾯的T是模板类型,可以是任何C++类型。⼀个集合表⽰了⼀组互不重复的数据元素。⽐如TSet表⽰了⼀组float集合,TSet表⽰了⼀组FString 集合。
⼆、创建和填充集合
因为这些容器在设计的时候考虑到⼀致性,所以后⾯你在学习各种各样的容器,你都会发现它们都具有相同或相似的函数,调⽤⽅法也是⼤同⼩异。类似TArray,TSet也有Add函数和Emplace函数,举个例⼦:
TSet t;
t.Add( );
t.Add( );
t.Emplace( );
棵字组词t.Add( );// 这个操作虽然可以编译运⾏,但是因为其元素已经存在,所以不会对现有集合发⽣影响
t.Emplace( );// 同上
注意,集合的内部数据结构是⼆叉树,⽽不是简单地按编号排序的,因此不能通过⽅括号[]来访问集合中的元素。
//t[0] = 4; //试图通过[]操作符来访问集合元素,但这样的操作是⾮法的
Tt中也有类似于TArray的Push函数,但是不叫Push,那就是Append函数,⽤法也是和Push⼀样的。
void Append( const TArray< ElementType > & InElements )
void Append( TArray< ElementType > && InElements )
三、迭代集合
因为TSet不能通过[]来访问容器⾥⾯的元素,所以也不能通过数值来迭代集合。因此我们要通过迭代器来访问集合:
for( TSet::TIterator it = t.CreateIterator(); it; ++it ){
GEngine->AddOnScreenDebugMessage( -, .f, FColor::White, FString::FromInt( *it ) );
}
四、两个集合的操作
1) 交集
沉睡魔咒2
TSet中的Interct函数提供了计算出两个集合的交集操作,下⾯是其函数声明:
表白语句TSet Interct( const TSet & OtherSet )
⽰例:
TSet X;
X.Add( );
X.Add( );芫荽叶
X.Add( );
TSet Y;
Y.Add( );
Y.Add( );
Y.Add( );
TSet interction = X.Interct(Y); // interction的内容为{2,3}
小红帽英语
2) 并集
TSet中的Union函数提供了计算出两个集合的并集操作,下⾯是其函数声明:
TSet Union( const TSet & OtherSet )
⽰例:
TSet uni = X.Union(Y); // uni的内容为{1,2,3,4}
容器的功能可谓⾮常强⼤的,上⾯只是列举其常⽤的⼀⼆,在官⽅的⽂档中有全⾯的介绍。同时我们也认识到,容器的学习也是⾮常简单的,只要多加练习和查询⽂档便可。
java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
本⽂关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由⼀个或多个确 ...
Java集合(容器)学习
1.集合和数组有什么区别,为什么使⽤集合⽽不⽤数组? 相同点:集合和数组都可以存储多个对象,对外作为⼀个整体存在. 数组的缺点: 长度必须在初始化时指定,且固定不变: 数组采⽤连续存储空间,删除和添加 ...
UE4中的集合:TSet容器
好久没有更新了,最近⼀直在⽼家过年,⽹络不通的,今天才有时间更新⼀集. ⼀.TSet是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这⼀节,我们就介绍集合容 ...
3D游戏开发之UE4中的集合:TSet容器
好久没有更新了,最近⼀直在⽼家过年,⽹络不通的,今天才有时间更新⼀集. ⼀.TSet是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这⼀节,我们就介绍集合容 ...
Java基础知识之集合(容器)简介
师恩难忘作文
JAVA的集合体系,主要由Collection接⼝,Map接⼝,Iterator接⼝和操作集合的⼯具类Collections组成.其中的Iterator只是⼀个迭代器,真正的容器则派⽣⾃Collect ...
Java集合框架——容器的快速报错机制 fail-fast 是什么?
前⾔:最近看 java 集合⽅⾯的源码,了解到集合使⽤了 fail-fast 的机制,这⾥就记录⼀下这个机制是什么,有什么⽤,如何实现的. ⼀.fail-fast 简介 fail-fast 机制,即快 ...
[19/03/24-星期⽇] 容器_Collection&lpar;集合、容器&rpar;之List&lpar;表,有顺序可重复)
⼀. 概念&⽅法 Collection 表⽰⼀组对象,它是集中.收集的意思.Collection接⼝的两个⼦接⼝是List.Set接⼝. 由于List.Set是Collection的⼦接⼝,意 ...
EUI库 - 9 - 数据集合 - 数据容器
DataGroup 设置⼀个数据源 ⾃动创建内部所需的对象 来完成数据展⽰ 还要设置单条数据的模板 叫ItemRenderer 继承关系
eui.List eui.ListBa e ...
随机推荐北京元宵节灯会
【原】Github系列之⼆:开源 ⼀⾏代码实现多形式多动画的推送⼩红点WZLBadge(iOS)
更新⽇志 V1.2 2015.09.25 1.UITabBarItem badge is supproted; 2.Enable change badge properties when badge ...
在Windows上编译最新的CURL,含有zlib,openssl
最近,从⽹上下载了⼀个curl库,使⽤时各种报错,都⽆法启动,于是⼲脆就直接⾃⼰编译了. 1. 准备⼯作 a. 下载zlib zlib可以使得HTTP请求⽀持gzip压缩,其地址如下: 官⽹:http ...
Divide and conquer:Median(POJ 3579)
快速求两数距离的中值 题⽬⼤意:给你⼀个很⼤的数组,要你求两个数之间的距离的中值 ⼆分法常规题,⼀个pos位就搞定的事情 #include
#include ...
C语⾔可变参数函数实现原理
⼀.可变参数函数实现原理 C函数调⽤的栈结构: 可变参数函数的实现与函数调⽤的栈结构密切相关,正常情况下C的函数参数⼊栈规则为
__stdcall, 它是从右到左的,即函数中的最右边的参数最先⼊栈. 本 ...
linux下访问中⽂⽬录⽂件
⽂件路径包含中⽂时,可输⼊部分⽂件名,然后按Tab键. 当路径包含中⽂括号时,⽤斜杠,如: \(….\) . 也可⽤ ls -li ,先查看inum(inode编号),然后再根据编号进⾏访问,⽤查找命 ...
WPF安装部署⼩结
开机启动 右击"MySetup">>"视图">>"注册表",在"HKEY_LOCAL-MACHINE&qu ...
kubernetes实践之运⾏aspnetcore webapi微服务
1.预备⼯作 unbuntu 16.04 and above docker kubernetes 集群
2.使⽤vs2017创建⼀个web api应⽤程序,并打包镜像到本地.
3.推送本地镜像到doc ...
南京新街口【BZOJ3224】【tyvj1728】普通平衡树
最近开始学习平衡树,在学长的强烈推荐下学习了AVL.红⿊树.splay(以上我都还没学)treap. ⾸先讲⼀下个⼈对treap(树堆)的理解. treap,顾名思义,就是tree+heap,⾸先因为 ...
Spring ⾃动转配类 在类中使⽤@Bean 注解进⾏转配但是需要排除该类说明
在spring中可以使⽤ @Component @Configuration @Bean(实例化后返回该bean)进⾏类实例的⾃动装配. 需求: 排除指定需要⾃动转配的类. 说明: 1.在以上注解中 ...