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)));
	}
}
相关推荐
_MyFavorite_15 分钟前
cl报错+安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
charlie11451419116 分钟前
现代嵌入式C++教程:C++98——从C向C++的演化(2)
c语言·开发语言·c++·学习·嵌入式·教程·现代c++
zmzb010320 分钟前
C++课后习题训练记录Day55
开发语言·c++
李白同学23 分钟前
C++:继承
开发语言·c++
k***921624 分钟前
【C++】STL详解(九)—priority_queue的使用与模拟实现
开发语言·c++
速易达网络36 分钟前
基于Java TCP 聊天室
java·开发语言·tcp/ip
沿着路走到底1 小时前
JS事件循环
java·前端·javascript
Hard but lovely1 小时前
C++11: 自定义异常&&标准异常体系&&回顾c异常处理方式
开发语言·c++
爱笑的眼睛111 小时前
超越 `cross_val_score`:深度解析Scikit-learn交叉验证API的架构、技巧与陷阱
java·人工智能·python·ai
jianfeng_zhu2 小时前
整数数组匹配
数据结构·c++·算法