Open In App

Default values in a Map in C++ STL

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:
 




// 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

 

Article Tags :