đź“–
C++
  • 1. C++ Basics
    • 1.1 Input, Output, and Program Structure
      • 1.1.1 Welcome to Data Structures in C++
      • 1.1.2 Hello World
      • 1.1.3 Input and Output
      • 1.1.4 getline and cin
      • 1.1.5 Program Structure
    • 1.2 Basic Data Types
      • 1.2.1 Basic Data Types
        • 1.2.1.1 Differences between C++ and Java Data Types and Variables
      • 1.2.2 Strings and Characters
      • 1.2.3 Numbers
      • 1.2.4 Booleans
    • 1.3 Conditional Statements
      • 1.3.1 Conditional Statements
      • 1.3.2 Basic If/Else Statements
      • 1.3.3 Comparing Strings
      • 1.3.4 Logical Operators
    • 1.4 Loops
      • 1.4.1 Loops
      • 1.4.2 For Loops
      • 1.4.3 While Loops
      • 1.4.4 Searching a String
    • 1.5 Functions in C++
      • 1.5.1 Functions in C++
      • 1.5.2 Defining and Calling Functions
      • 1.5.3 Passing by Reference vs Value
      • 1.5.4 Function Prototypes
  • 2. Going Beyond the Basics
    • 2.1 Vector Basics
      • 2.1.1 Vector Basics
      • 2.1.2 Creating and Accessing Vectors
      • 2.1.3 Inserting into a Vector
      • 2.1.4 Looping Through a Vector
    • 2.2 Function Default Values
      • 2.2.1 Function Default Values
      • 2.2.2 Default Values
      • 2.2.3 Default Values with a Prototype
      • 2.2.4 Example: Splitting a String
    • 2.3 Structs
      • 2.3.1 Structs
      • 2.3.2 Defining and Accessing Structs
      • 2.3.3 Using Structs: Line Length
    • 2.4 File Input/Output
      • 2.4.1 File Input/Output
      • 2.4.2 Reading in a File
      • 2.4.3 Processing a File
      • 2.4.4 Writing to a File
      • 2.4.5 Creating an Input Stream from a String
    • 2.5 Error Handling
      • 2.5.1 Error Handling
      • 2.5.2 Validating a Number
      • 2.5.3 Validating a Vector Index
      • 2.5.4 Throwing Other Values
  • 3. Libraries
    • 3.1 Header Files
      • 3.1.1 Header Files
      • 3.1.2 Header File
      • 3.1.3 Header and Implementation File
      • 3.1.4 Safer Header
    • 3.2 Using Libraries
      • 3.2.1 Using a Utilities Library
      • 3.2.2 The Util Library
  • 4. 2D Vectors, Stacks, and Queues
    • 4.1 2D Vectors
      • 4.1.1 2D Vectors
      • 4.1.2 The 2D Vector
      • 4.1.3 Creating a 2D Vector
    • 4.3 Stacks
      • 4.3.1 Stacks
      • 4.3.2 Basic Stack
      • 4.3.3 Stack Example: Reverse a String
    • 4.5 Queues
      • 4.5.1 Queues
      • 4.5.2 Basic Queues
      • 4.5.3 Queue Example: Next in Line
  • 5. Sets and Maps
    • 5.1 Pairs and Iterators
      • 5.1.1 Pairs and Iterators
      • 5.1.2 Pairs
      • 5.1.3 Iterators
    • 5.3 Sets
      • 5.3.1 Sets
      • 5.3.2 Basic Sets
      • 5.3.3 Iterating Through a Set
      • 5.3.4 Sets of Struct Values
    • 5.4 Maps
      • 5.4.1 Maps
      • 5.4.2 Map Basics
      • 5.4.3 Iterating Through a Map
      • 5.4.4 Updating Maps
  • 6. Recursion
    • 6.1 Functional Recursion
      • 6.1.1 Functional Recursion
      • 6.1.2 Basic Recursive Problem: Exponential
      • 6.1.3 Recursion Example: Reverse String
      • 6.1.4 Recursion Example: Make Sum
    • 6.2 Procedural Recursion
      • 6.2.1 Procedural Recursion
      • 6.2.2 Print Binary
      • 6.2.3 Print Permutations
      • 6.2.4 Depth vs Breadth Search
  • 7. Pointers, Linked Lists, and Graphs
    • 7.1 Pointers
      • 7.1.1 Pointers
      • 7.1.2 Assigning and Updating Pointers
      • 7.1.3 Pointers and Functions
      • 7.1.4 Pointers and Data Structures
    • 7.2 Linked Lists
      • 7.2.1 Linked Lists
      • 7.2.2 Basic Linked List
      • 7.2.3 Linked List and Recursion
      • 7.2.4 Example: Sorted Phone Book
      • 7.2.5 Doubly Linked List
    • 7.3 Graphs
      • 7.3.1 Graphs
      • 7.3.2 Basic Example: Breadth First Search
      • 7.3.3 Application: Connecting Cities
Powered by GitBook
On this page
  • Creating a Map
  • Inserting Into a Map
  • Access Map Values
  • Other Map Functions
  • Try This Example
  1. 5. Sets and Maps
  2. 5.4 Maps

5.4.2 Map Basics

Maps are a helpful data structure that utilizes a key/value pair. While maps are part of the standard C++ library, you do need to include them at the top of your program.

#include <map>

Creating a Map

When you create a map, you can specify any data type for the key and any type for the value.

map<keyType, valueType> variableName;

Examples:

map<string, double> catalog;
map<int, string> products;
map<string, int> roster;

Notice that you define two types, the key, then the value. In a map, the key needs to be unique, but the values do not.

Like other data structures, maps can be declared and initialized or just declared. Initial values need to have both the key and value in a nested set of curly brackets.

Take a look at the example below.

map<string, double> catalog {{"treats", 3.99}, {"leash", 8.99}, {"crate", 24.99}};

In this declaration, a map called catalog is created with 3 initial values. The keys are strings, treats, leash, and crate, with values of 3.99, 8.99, and 24.99 respectively.

Inserting Into a Map

Adding to a map once it has been declared can be done in one of two ways.

First, you can use the insert using the insert command. The insert command takes a C++ pair object however you can easily create the pair inline.

catalog.insert(pair<string, double>("bed", 19.99));

The pair variable types should match the variable types of the map, however, some implicit conversion is possible with numbers.

You can also insert a new value with the [ ] operator. When using the [ ] and specifying a key that doesn’t exist, you can add the new key to the map.

For example, if we wanted to add a chew toy to the catalog, it would look like this:

catalog["chew toy"] = 8.99;

Access Map Values

As mentioned before, access to maps values is via the map key. Like vectors, you can access maps in two different ways, using the [ ] operator or using the at(key) function.

Just like vectors, the at function will throw an error if the key is not found. In contrast, if you use the [ ] operator and a key is not found, it will actually create a new map entry with a default value. Both can be useful, and both need to be used with care so you don’t have unintended consequences.

Other Map Functions

Like the other data structures you have explored, maps have additional functions, some of which will be explored later in this lesson. In this example, you will notice the use of size. Maps have both a size and an empty function that perform the same way as the other data structures you have seen in this course.

Previous5.4.1 MapsNext5.4.3 Iterating Through a Map

Last updated 3 years ago

Try This Example