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:
- Declare a structure(say struct node) with a default value.
- 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
Contact Us