TMap<T, S>

A TMap<T, S> creates a table of sorts in the RAM. A TMap represents a mapping of the keys at the left to the values on the right-hand side. You can visualize a TMap as a two-column table, with keys in the left column and values in the right column.

A list of items for the player's inventory

For example, say we wanted to create a C++ data structure in order to store a list of items for the player's inventory. On the left-hand side of the table (the keys), we'd have an FString for the item's name. On the right-hand side (the values), we'd have an int for the quantity of that item.

Item (Key)

Quantity (Value)

apples

4

donuts

12

swords

1

shields

2

To do this in code, we'd simply use the following:

TMap<FString, int> items;
items.Add( "apples", 4 );
items.Add( "donuts", 12 );
items.Add( "swords", 1 );
items.Add( "shields", 2 );

Once you have created your TMap, you can access values inside the TMap using square brackets and by passing a key between the brackets. For example, in the items map in the preceding code, items[ "apples" ] is 4.

Tip

UE4 will crash if you use square brackets to access a key that doesn't exist in the map yet, so be careful! The C++ STL does not crash if you do this.

Iterating a TMap

In order to iterate a TMap, you use an iterator as well:

for( TMap<FString, int>::TIterator it = items.CreateIterator(); it; ++it )
{
  GEngine->AddOnScreenDebugMessage( count++, 30.f, FColor::Red,
  it->Key + FString(": ") + FString::FromInt( it->Value ) );
}

TMap iterators are slightly different from TArray or TSet iterators. A TMap iterator contains both a Key and a Value. We can access the key inside with it->Key and the value inside the TMap with it->Value.

Iterating a TMap
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.123.147