Welcome! Today, we're diving into C++ map
s. These store items as key-value pairs, much like a dictionary where you look up a word (key) to find its meaning (value). By the end of this lesson, you’ll have a good grasp of map
s in C++.
Maps in C++ are collections of key-value pairs. This method differentiates them from arrays and vectors, which store elements in a linear order. std::map
stores elements in a sorted order by key.
Here's a simple map
, where names are keys and ages are values:
In map_example
, the keys are "Alice," "Bob," and "Charlie," and the values are 25, 28, and 30, respectively. Key uniqueness is integral to the design of maps — for example, that means we can only have a single key called "Alice"
.
Maps are initiated by placing key-value pairs within {}
using the initialization list.
Keys and values can be of different data types. Here, our key is string, and a value is int. However, they can also be of the same data type. For example:
This map has an integer key and an integer value.
Unlike arrays, maps are collections of items accessed by their keys, not by their positions.
Here, using the "Alice"
key, we access the corresponding value. Keys serve as a special indexing system here.
C++ maps are mutable, meaning we can add, modify, or delete elements.
We can add a new key-value pair like this:
Alternatively, we can use the insert()
method to add a new key-value pair:
We can modify a value by accessing it via its key:
By writing map_name[new_key]
, you can create a new element with the default value of the mapped type:
But how do we understand if it worked? Let's learn how to print the map's contents!
Iterating a map is different from iterating a vector. We can still use a simple range-based for loop, but this time each element is a pair of elements: the key and the value. We can access them with .first
for the key and .second
for the value. Let's see how it works:
Here, we use a range-based for loop to iterate through each key-value pair in the map. The pair
variable holds each key-value pair, where pair.first
is the key and pair.second
is the value. Here is how the output looks like:
Great work! We've delved into C++ map
s: understanding their structure, creating and using them, and exploring their practical applications. Next, let's reinforce this knowledge with some hands-on exercises!
