UE4でTMapをイテレートする方法


方法1: イテレータを使用する方法

TMap<int32, FString> MyMap;
// マップにキーと値を追加する
MyMap.Add(1, TEXT("Apple"));
MyMap.Add(2, TEXT("Banana"));
MyMap.Add(3, TEXT("Orange"));
// イテレータを初期化する
for (auto& Pair : MyMap)
{
    int32 Key = Pair.Key;
    FString Value = Pair.Value;
    // キーと値の処理を行う
    // 例: ログ出力
    UE_LOG(LogTemp, Warning, TEXT("Key: %d, Value: %s"), Key, *Value);
}

方法2: イテレータを使用して条件付きでイテレートする方法

TMap<int32, FString> MyMap;
// マップにキーと値を追加する
MyMap.Add(1, TEXT("Apple"));
MyMap.Add(2, TEXT("Banana"));
MyMap.Add(3, TEXT("Orange"));
// 条件に一致するエントリのみ処理する
for (auto& Pair : MyMap)
{
    int32 Key = Pair.Key;
    FString Value = Pair.Value;
    if (Value == TEXT("Banana"))
    {
        // キーが2で値が"Banana"のエントリのみ処理する
        // 例: ログ出力
        UE_LOG(LogTemp, Warning, TEXT("Key: %d, Value: %s"), Key, *Value);
    }
}

方法3: キーを使用してイテレートする方法

TMap<int32, FString> MyMap;
// マップにキーと値を追加する
MyMap.Add(1, TEXT("Apple"));
MyMap.Add(2, TEXT("Banana"));
MyMap.Add(3, TEXT("Orange"));
// キーの配列を作成する
TArray<int32> Keys;
MyMap.GetKeys(Keys);
// キーを使用してイテレートする
for (int32 Key : Keys)
{
    FString Value = MyMap[Key];
    // キーと値の処理を行う
    // 例: ログ出力
    UE_LOG(LogTemp, Warning, TEXT("Key: %d, Value: %s"), Key, *Value);
}