UE5 C++ TSet 创建初始和迭代

一.TSet定义

把元素本身放入容器,更快速。感觉用的少,并且排序不可靠

都没用到过,后面用到再说,感觉比TArray快,但不会自动排序。

一.创建初始

有点象TArray的感觉

cpp 复制代码
void AWXSetActor::InitSet()
{
	TSet<FString> FruitSet;

	FruitSet.Add(TEXT("Banana"));
	FruitSet.Add(TEXT("Grapefruit"));
	FruitSet.Add(TEXT("Pineapple"));
	// FruitSet == [ "Banana", "Grapefruit", "Pineapple" ]

	FruitSet.Add(TEXT("Pear"));
	FruitSet.Add(TEXT("Banana"));
	// FruitSet == [ "Banana", "Grapefruit", "Pineapple", "Pear" ]
	// Note: Only one banana entry.

	TSet<FString> FruitSet2;
	FruitSet2.Emplace(TEXT("Kiwi"));
	FruitSet2.Emplace(TEXT("Melon"));
	FruitSet2.Emplace(TEXT("Mango"));
	FruitSet2.Emplace(TEXT("Orange"));
	FruitSet.Append(FruitSet2);
	// FruitSet == [ "Banana", "Grapefruit", "Pineapple", "Pear", "Orange", "Kiwi", "Melon", "Mango" ]
}

2.迭代,两种迭代器 和 &:

auto,如果明确只知道类型,可以用类型替换。迭代器要多加个*。改引用就是改对应的内存

cpp 复制代码
void AWXSetActor::LoopSet()
{
	TSet<FString> FruitSet;

	FruitSet.Add(TEXT("Banana"));
	FruitSet.Add(TEXT("Grapefruit"));
	FruitSet.Add(TEXT("Pineapple"));
	// FruitSet == [ "Banana", "Grapefruit", "Pineapple" ]

	FruitSet.Add(TEXT("Pear"));
	FruitSet.Add(TEXT("Banana"));
	// FruitSet == [ "Banana", "Grapefruit", "Pineapple", "Pear" ]
	//for (const auto& Elem : FruitSet)  不可修改
	//for(FString& Elem: FruitSet )
	for (auto& Elem : FruitSet)  //可修改原值
	{
		FPlatformMisc::LocalPrint(
			*FString::Printf(
				TEXT(" \"%s\"\n"),
				*Elem
			)
		);
	}
	// Output:
	// 	"Banana"
	// 	"Grapefruit"
	// 	"Pineapple"
	// 	"Pear"
	// 	"Orange"
	// 	"Kiwi"
	// 	"Melon"
	// 	"Mango"
	for (auto It = FruitSet.CreateIterator(); It; ++It)
	{
		*It += TEXT("12");
		FPlatformMisc::LocalPrint(*FString::Printf(TEXT("(%s)\n"), *(*It)));
	}

	for (auto It = FruitSet.CreateConstIterator(); It; ++It)
	{
		FPlatformMisc::LocalPrint(*FString::Printf(TEXT("(%s)\n"),*(*It)));
	}
}
相关推荐
手握风云-29 分钟前
Spring AI:让大模型住进 Spring 生态(三)
java·后端·spring
zhouwy11331 分钟前
Linux文件系统与IO编程
linux·c++
咸鱼2.01 小时前
【java入门到放弃】Dubbo
java·开发语言·dubbo
JAVA面经实录9178 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
王老师青少年编程8 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮9 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
许彰午10 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
样例过了就是过了10 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
Bat U11 小时前
JavaEE|多线程初阶(七)
java·开发语言
谭欣辰11 小时前
C++ 排列组合完整指南
开发语言·c++·算法