UEC++ 容器:TMap
TMap
- UE中最常用的容器,此容器是关联型容器,存储对象均有一个关联值,通过键值可以高效的进行对象访问
- TMap为同质容器,存储数据类型必须相同,TMap 也是值类型,支持常规复制、赋值和析构函数操作,以及其元素较强的所有权。映射被销毁时,其元素也将被销毁。键类型必须为值类型,不能使用指针。
- Map的结构例如钥匙和锁,一把钥匙找一把锁,他们之间是一一对应的关系!
构建,添加数据:
构建时,需要选择好容器的键值类型和元素类型,添加时必须提供键值。如果添加的数据键值已经存在则会覆盖之前的添加!
// 构建容器,键值类型为FStreing,数据类型为int32 TMap<FString, int32> map; // 向容器添加元素,如果添加相同元素,会覆盖之前的内容 map.Add(TEXT("map01"), 99); // 没有填值,将为默认值 map.Add(TEXT("map02")); // 这种方式可以修改值,但是不能添加,因为map03不存在 map[TEXT("map03")] = 90;
遍历操作:
for (auto&Item : map) { // 获取键与值对 Item.Key; Item.Value; } for (auto It = map.CreateIterator(); It; ++It) { It.Key(); // 获得值,返回的是引用,可以在外部修改 It.Value() = 100; It->Value; } for (auto It = map.CreateConstIterator(); It; ++It) { // 获取键值对,无法修改值 It.Key(); It.Value(); }
合并TMap:
Append合并操作,传入的Map如果有和被合并的Map键值相同数据,将采取覆盖操作
map.Append(map2);
查询函数:
map.Num(); // 获取容器中元素的数量 // 通过索引运算符使用键值获取值引用, 可以直接用来修改元素的值 map[TEXT("map01")]; // 检查是否包含给定的键值 返回布尔值 map.Contains(TEXT("map01")); // 返回键值绑定的元素指针没,如果没有内容返回空,非返回引用 map.Find(TEXT("map01"));
移除函数:
TMap有Reset函数,清除内容,但保留空间
map.Remove(TEXT("map01")); // 使用给定的键值移除元素 map.Empty(); // 清空容器

浙公网安备 33010602011771号