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.
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.
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
.
3.144.123.147