Maps
8 min · C++
Look up values by key with std::map, C++'s dictionary.
Enemy 1 of 5
Key-value lookups
So far, vectors have let you look things up by position (index 0, 1, 2...). A std::map<Key, Value> (from <map>) instead lets you look things up by a meaningful key (a player's name, an item id, a word) rather than a numeric position. Internally it keeps entries sorted by key, which is why it's sometimes called an "ordered map".
Reading and writing use the same square-bracket syntax you've already seen with vectors: m[key] = value stores a value under that key, and m[key] reads it back. If you read a key that was never stored, std::map quietly creates it with a default value (0 for numbers, an empty string for text) rather than crashing. Worth knowing, since it means a typo'd key won't necessarily throw an error.
This is conceptually the same idea as a Python dict, a JavaScript object, or a Go map. Every mainstream language has some version of this key-value structure, because looking things up by a meaningful name instead of a numeric position is such a common need.
Loading editor...