If you don't explicitly declare a constructor, the compiler generates a default one and map uses that one.
True, but the default constructor doesn't zero out the members. Just as declaring an int without initializing it will provide a random value.
Unless there is a default constructor that does this, is there?