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)));
	}
}
相关推荐
身如柳絮随风扬20 小时前
Java中的CAS机制详解
java·开发语言
-dzk-1 天前
【代码随想录】LC 59.螺旋矩阵 II
c++·线性代数·算法·矩阵·模拟
风筝在晴天搁浅1 天前
hot100 78.子集
java·算法
m0_706653231 天前
C++编译期数组操作
开发语言·c++·算法
故事和你911 天前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
qq_423233901 天前
C++与Python混合编程实战
开发语言·c++·算法
m0_715575341 天前
分布式任务调度系统
开发语言·c++·算法
zhangzhangkeji1 天前
UE5 多线程(1):运行多线程的环境搭建。初识 FRunnable 可执行对象,线程类 FRunnableThreadWin
ue5
Configure-Handler1 天前
buildroot System configuration
java·服务器·数据库
CSDN_RTKLIB1 天前
简化版unique_ptr说明其本质
c++