Introduction to Map Data Structure

Welcome! Today, we're diving into C++ maps. 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 maps in C++.

Understanding Maps

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

Creating a Map

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.

Accessing Map Elements

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.

Modifying Maps: Adding New Pairs

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:

Modifying Maps: Changing Pairs

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!

Iterate a map with for loop

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:

Lesson Summary

Great work! We've delved into C++ maps: understanding their structure, creating and using them, and exploring their practical applications. Next, let's reinforce this knowledge with some hands-on exercises!

Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal