当前位置: 首页 > news >正文

UE C++ TMap 移除

一.Remove

1.Remove 会返回TMap里的删除元素的数量。

我们看这个源代码也能看出来,注释

本质还是嵌套了,Pairs的删除。Pairs 属于 ElementSetType类。

ElementSetType类,居然本质是TSet 让我对 TSet的学习更为期待。

测试案例:

void AWXMapActor::RemoveMap()
{TMap<int32, FString> FruitMap;FruitMap.Add(1, TEXT("Grapefruit"));FruitMap.Add(2, TEXT("Pineapple"));FruitMap.Add(3, TEXT("Pear"));  //添加相同的键,会重置掉原来的FruitMap.Remove(1); //返回删除数量FruitMap.Remove(5);
}

二. FindAndRemoveChecked

1.如果没有会触发断言,谨慎使用

2.源码注释,

看代码,测试代码会发现会返回的其实是值类型,这个whether 感觉用的不太好

3.代码 

void AWXMapActor::FindAndCheck()
{TMap<int32, FString> FruitMap;FruitMap.Add(1, TEXT("Grapefruit"));FruitMap.Add(2, TEXT("Pineapple"));FruitMap.Add(3, TEXT("Pear"));  //添加相同的键,会重置掉原来的FString Remove1 = FruitMap.FindAndRemoveChecked(1);FString Remove5 = FruitMap.FindAndRemoveChecked(5); //如果没有会报错
}

三. RemoveAndCopyMap

1.赋值的是变量的引用,而不是复制的值

2.代码注释,差不多。你把引用参数,传经来。它赋值给出去。当你没找到,也不会改变原来的引用。

3.测试如下

void AWXMapActor::RemoveAndCopyMap()
{TMap<int32, FString> FruitMap;FruitMap.Add(1, TEXT("Grapefruit"));FruitMap.Add(2, TEXT("Pineapple"));FruitMap.Add(3, TEXT("Pear"));  //添加相同的键,会重置掉原来的FString Removed1 = TEXT("SS"); FString Removed2 = TEXT("SH");bool Find = FruitMap.RemoveAndCopyValue(2, Removed1);bool Find2 = FruitMap.RemoveAndCopyValue(6, Removed2);int a = 1;
}

四.EmptyMap

1.清空键值,但不会清空内存,按照你参数设置

2.会保留,预期的可能的(potentially)已经分配的空间,也就是你传入的值。

3.测试代码:

Num 会被清为0,但是Max 会因为你申请的值而改变。

void AWXMapActor::EmptyMap()
{TMap<int32, FString> FruitMap;FruitMap.Add(1, TEXT("Grapefruit"));FruitMap.Add(2, TEXT("Pineapple"));FruitMap.Add(3, TEXT("Pear"));  //添加相同的键,会重置掉原来的FruitMap.Empty(0);FruitMap.Empty(10);
}

五. Reset 

1.清空后,会保留你之前申请的空间,即Max不会变,Num清零

2.测试代码

void AWXMapActor::ResetMap()
{TMap<int32, FString> FruitMap;FruitMap.Add(1, TEXT("Grapefruit"));FruitMap.Add(2, TEXT("Pineapple"));FruitMap.Add(3, TEXT("Pear"));  //添加相同的键,会重置掉原来的FruitMap.Reset();TMap<int32, FString> FruitMap2;FruitMap.Add(1, TEXT("Grapefruit"));FruitMap.Add(2, TEXT("Pineapple"));FruitMap.Add(3, TEXT("Pear"));  //添加相同的键,会重置掉原来的FruitMap.Add(5, TEXT("1Grapefruit"));FruitMap.Add(6, TEXT("2Pineapple"));FruitMap.Add(7, TEXT("3Pear"));  //添加相同的键,会重置掉原来的FruitMap.Reset();int a = 1;
}

http://www.dtcms.com/a/556732.html

相关文章:

  • 思途智旅游网站开发临沂制作网站企业
  • Linux系统C++开发工具(四)—— jsoncpp 使用指南
  • flask 框架的ORM 学习及应用
  • Nginx配置文件解析:从结构到参数详解
  • 自己可以做百度网站吗如何网络推广运营
  • [VT-Refine] 强化学习工作流 | 分布式-近端策略优化(DPPO)
  • AngularJS与SQL的完美结合
  • 企业网站用织梦好吗做非物质文化遗产网站的风险
  • OceanBase集群诊断工具:obdiag
  • 算法<C++>——双指针 | 滑动窗口
  • HarmonyOS数据存储Kit深度实践:从架构设计到性能优化
  • 【JUnit实战3_21】第十二章:JUnit 5 与主流 IDE 的集成 + 第十三章:用 JUnit 5 做持续集成(上):在本地安装 Jenkins
  • Java算法题分享(一)
  • 简单、高效且低成本的预训练、微调与服务,惠及大众基于 Ray 架构设计的覆盖大语言模型(LLM)完整生命周期的解决方案byzer-llm
  • 软件测试-BUG篇
  • 写入瓶颈到削峰填谷:基于 Redis 与 MySQL 的高并发写入工程化方案
  • 一些常见的编程软件
  • Nginx Stream模块开发:TCP/UDP代理扩展
  • 开网站做外贸中国做网站正邦
  • K8s Dashboard运维技巧全面经验总结
  • 合肥创业网从百万到千万 网站怎么优化
  • Flutter boost权威指南
  • 人工智能、机器学习与神经网络:解锁智能时代的核心密码
  • Kubernetes 上的 GitLab + ArgoCD 实践(三):使用 ArgoCD 打通 CD 流程
  • spark-SQL学习
  • SSM基于网络安全维护的机房设备管理19rya(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • ProcessLifecycleOwner 完全指南:优雅监听应用前后台状态
  • html css js网页制作成品——珠帘玉幕HTML+CSS网页设计(4页)附源码
  • 开启RN之旅——小试牛刀
  • Unity使用PP-MattingV2实现人像分割