Sometimes in map it is required that key which we have not assigned gets some default value. for ex- Write a cpp program to check whether 1 to 10 integer values exits in array or not
// for default values to map struct node { _ int value = -1;_ }; __ // driver function __ int main() { _ // Empty map container_ __ _ map<int, node> mp;_ __ _ int a[10] = { 1, 3, 4, 10, 7, 6, 5, 2, 11 };_ _ // Inserting elements in map_ _ // assigning 1 to values of array...by default they are -1_ __ _ for (int i = 0; i < 10; i++)_ _ mp[a[i]].value = 1;_ __ _ for (int i = 1; i <= 10; i++) {_ _ if (mp[i].value == -1)_ _ cout << i << " does not exist\n";_ _ }_ } Input : 1 3 4 10 7 6 5 2 11 Output :8 does not exist 9 does not exist
// for default values to map struct node { int value = -1; };
// driver function
int main() { // Empty map container map<int, int> mp1; cout << mp1[0] << "\n"; map<int, node> mp2; cout << mp2[0].value; } Run on IDE Output: 0 -1
So how does this work?? Primitive datatypes(Int, Char, Bool, Float etc) in CPP are undefined if not initialised, but in case of struct or Map they are initialised with some default values. So in above example we have created a user defined datatype struct with name node and assigned default value -1 to it. NOTE: By default map have default values but by using above method we can change it according to our need int — 0 float — 0 bool — 0
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above