std::map doesn’t have default values per se.
And there are no elements in a map that have no value assigned.
When you have a map m of type std::map< K,V> and use operator with key k, you’re not just asking for the value of the element with key k.
Instead you’re asking:“does this map have a value for key k? if yes return that, else insert a default constructed/initialized element for key k and return that.”
So the value you’ll get returned from a map< K,V> when using operator with a key not in the map depends on the default value for the type of V. This is 0, 0l, 0ll, 0.0 and so on the primitive built-in types or whatever the default constructor creates for user defined types.