设为首页
收藏本站
切换到宽版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
VIP用户组
官网群
无名商城论坛
»
论坛
›
资源分享区
›
学习资源专区
›
【冷漠搬砖】UE4随笔——TMap自定义结构体键值 ...
返回列表
发帖
查看:
269
|
回复:
0
[其他技术]
【冷漠搬砖】UE4随笔——TMap自定义结构体键值
[复制链接]
无名
无名
当前离线
积分
32464
1万
主题
1万
帖子
3万
积分
管理员
积分
32464
发消息
发表于 2022-5-8 17:22:20
|
显示全部楼层
|
阅读模式
在UE4中,TMap是一个比较常用的容器,TMap的用法很简单,本文将着重介绍一下TMap如何自定义结构体键值。
和众多Map容器的实现方法类似,TMap也是通过将Key转换为Hash,来建立对Value的索引,故而想要建立自定义结构体的Key,势必要确保其可顺利转换为Value。下面是UE4中TMap中关于创建Hash的相关代码:
其中GetSetKey()用于设置Key的值
Matches()用于进行Key值碰撞测试GetTypeHash()用于获取Key的Hash。根据以上代码不难发现,在生成Hash的时候会会调用Key值结构体的“==”运算符来判断两个Key值是否相等,以及GetTypeHash()来产生Hash,由此我们可以得到第一种构建自定义结构体键值的方法:
该方法相当于是写了Key结构体的“==”运算符函数和GetTypeHash函数,它们均为全局函数,这样可以通过我们定义好的全局函数来生成Hash。
第二种方式就是定义自己的MapKeyFuncs来替代TDefaultMapKeyFuncs,代码如下:
以上是自己在UE4的学习中总结的两种构造自定义结构体键值的方法,希望对大家能有所帮助。
和众多Map容器的实现方法类似,TMap也是通过将Key转换为Hash,来建立对Value的索引,故而想要建立自定义结构体的Key,势必要确保其可顺利转换为Value。下面是UE4中TMap中关于创建Hash的相关代码:
其中GetSetKey()用于设置Key的值,Matches()用于进行Key值碰撞测试,GetTypeHash()用于获取Key的Hash。根据以上代码不难发现,在生成Hash的时候会会调用Key值结构体的“==”运算符来判断两个Key值是否相等,以及GetTypeHash()来产生Hash,由此我们可以得到第一种构建自定义结构体键值的方法:
该方法相当于是写了Key结构体的“==”运算符函数和GetTypeHash函数,它们均为全局函数,这样可以通过我们定义好的全局函数来生成Hash。
第二种方式就是定义自己的MapKeyFuncs来替代TDefaultMapKeyFuncs,代码如下:
以上是自己在UE4的学习中总结的两种构造自定义结构体键值的方法,希望对大家能有所帮助。
侵删
定义
,
结构
,
函数
,
Key
,
Hash
相关帖子
•
【Max】C语言(入门级)
•
【菜鸟】结绳教程 第一课 自定义列表
•
【Max】结绳第三课:窗口
•
【教程】Python学习教程_代码缩进
•
【夜未央】C++ day02教程- 变量和函数的初步体验
•
【】Python进阶——15/19
•
HTML5的CSS3转3d技术
•
【GD】fn模块和函数代码教程
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表