Appearance
TMap
map,映射,指代的是一种一一对应的关系。好似我们看地图,地图上的点虽然并不是真实世界,但是却唯一对应真实世界的真实地点。
UE里的TMap是键值对形式进行存储的。键只能是值类型。
构建
cpp
TMap<FString, int32> map;
map.Add(TEXT("N1"), 50);
map.Add(TEXT("N2"));
TMap<FString, int32> map1;
map1.Add(TEXT("N1"), 49);
map1.Add(TEXT("N3"), 88);
map.Append(map1);
for(auto& Item:map)
{
UE_LOG(LogTemp, Log, TEXT("=== %d"), Item.Value);
}
for(auto It = map.CreateIterator(); It; ++It)
{
UE_LOG(LogTemp, Log, TEXT("%s === %d"), *It.Key(), It.Value()); //Key方法获取键,Value方法获取值
}
for(auto It = map.CreateConstIterator(); It; ++It)
{
UE_LOG(LogTemp, Log, TEXT("%s === %d"), *It.Key(), It.Value()); //Key方法获取键,Value方法获取值
}
查询
cpp
map.Num(); // 获取容器中元素的数据
map[TEXT("N1")]; // 通过索引运算符使用键值获取值引用(返回引用可以用来修改) 可以用来修改元素内容
map.Contains(TEXT("N1")); // 检查是否包含给定的键值 返回布尔值
map.Find(TEXT("N1")); // 返回键值绑定的元素指针,如果没有内容返回空,非返回引用
移除
cpp
map.Reset(); // 清除内容,但保留空间
map.Remove(TEXT("N1")); // 使用给定的键值移除元素
map.Empty(); // 清空容器