Open In App
Related Articles

Default values in a Map in C++ STL

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Prerequisite: Map in STL
A map is a container which is used to store a key-value pair. By default, In Primitive datatypes such as int, char, bool, float in C/C++ are undefined if variables are not initialized, But a Map is initially empty when it is declared. When this map is accessed with the [ ]  (e.g map<int,int> mpp;   mpp[1]; ) if the key is not present in the map , it gets added and its value is by default set to 0 (i.e value initialization gets invoked for the int) .To initialize the map with a random default value below is the approach:
Approach: 
 

  1. Declare a structure(say struct node) with a default value.
  2. Initialize Map with key mapped to struct node.


Syntax: 
 

// For Structure 
struct Node {
   int value = -1;
}

// For Map with every key mapped to default value -1
Map < int, Node > M; 


Below is the illustration of the Map with a default value -1:
 

CPP14

// C++ program to illustrate a Map
// initialize with default value
#include <bits/stdc++.h>
using namespace std;
 
// Structure Node
struct Node {
    int value = -1;
};
 
// Driver Code
int main()
{
    // Map initialize with key value
    // pair with each pair mapped with
    // structure Node
    map<int, Node> Map;
 
    // Print the default value of 1
    // store in Map
    cout << Map[1].value << endl;
 
    return 0;
}

                    

Output: 
-1

 

Last Updated : 01 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads