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

官方文档学习TArray数组的运算符

 三.运算符

就是我们常说的深拷贝,完全复制一个对象到另一个数组。

MoveTemp的实现原理,应该先进行了深拷贝。再将原动态数组清空。

1.重载== 运算符

元素自身要有 == 。数组要顺序数量同时相同,才能叫数组间的相同。

最后敲一遍实例代码,会有更深的理解。

void AWXArrayActor::OperateArray()
{
	TArray<int32> ValArr3;
	ValArr3.Add(1);
	ValArr3.Add(2);
	ValArr3.Add(3);

	auto ValArr4 = ValArr3;
	// ValArr4 == [1,2,3];
	ValArr4[0] = 5;
	// ValArr3 == [1,2,3];
	// ValArr4 == [5,2,3];

	TArray<int> SValArr3 = MoveTemp(ValArr4);

	// ValArr3 == [5,2,3,1,2,3]
	// ValArr4 == []

	ValArr4 += ValArr3;
	// ValArr4 == [5,2,3,1,2,3]

	TArray<int32> ValArr5 = ValArr3;
	TArray<int32> ValArr6;
	ValArr6 += ValArr4;
	ValArr6.Append(ValArr3);
	TArray<int32> ValArr7 = {1,1,1};
	ValArr7 = MoveTemp(ValArr6);
}

void AWXArrayActor::OperateStrArray()
{
	TArray<FString> FlavorArr1;
	FlavorArr1.Emplace(TEXT("Chocolate"));
	FlavorArr1.Emplace(TEXT("Vanilla"));
	// FlavorArr1 == ["Chocolate","Vanilla"]

	auto FlavorArr2 = FlavorArr1;
	// FlavorArr2 == ["Chocolate","Vanilla"]

	bool bComparison1 = FlavorArr1 == FlavorArr2;
	// bComparison1 == true

	for (auto& Str : FlavorArr2)
	{
		Str = Str.ToUpper();
	}
	// FlavorArr2 == ["CHOCOLATE","VANILLA"]

	bool bComparison2 = FlavorArr1 == FlavorArr2;
	// bComparison2 == true, because FString comparison ignores case

	Exchange(FlavorArr2[0], FlavorArr2[1]);
	// FlavorArr2 == ["VANILLA","CHOCOLATE"]

	bool bComparison3 = FlavorArr1 == FlavorArr2;
	// bComparison3 == false, because the order has changed
}


http://www.kler.cn/a/560923.html

相关文章:

  • GaussDB会话超时参数与最大连接数设置
  • 一文读懂Docker之Docker Swarm集群平台搭建
  • 单片机裸机编程-时机管理
  • 电机控制的空间矢量调制 (SVPWM)
  • ubuntu-24.04.1-desktop 中的 QT6.7 QtCreator 调试程序
  • 数据结构:双链表list
  • elasticsearch在windows上的配置
  • BUUCTF--[极客大挑战 2019]RCE ME
  • 【深度学习】强化学习(RL)-A3C(Asynchronous Advantage Actor-Critic)
  • [深度学习][python]yolov12+bytetrack+pyqt5实现目标追踪
  • linux驱动编程配置----(二)
  • 论文笔记(七十二)Reward Centering(五)
  • 【Gee】Day1:HTTP 基础
  • 深入讲解微信小程序 <canvas> 标签的 type=“2d“属性
  • 漏洞文字版表述一句话版本(漏洞危害以及修复建议),通常用于漏洞通报中简洁干练【持续更新中】
  • 【Java项目】基于SpringBoot的【旅游管理系统】
  • Python爬虫系列教程之第十五篇:爬取电商网站商品信息与数据分析
  • C++ QT 6.6.1 QCustomPlot的导入及使用注意事项和示例 | 关于高版本QT使用QCustomPlot报错问题解决的办法
  • SSL和TLS:深入了解网络安全的基石
  • 【DeepSeek与鸿蒙HarmonyOS:开启应用开发新次元】