В дополнение к превосходному ответу Тимо -
Если не существует элемента в "foo", первый будет сначала конструировать значение по умолчанию в месте "foo", ТОГДА используя ссылку на построенный по умолчанию "значение foo, присвойте этому месту значение 123.
Просто выполнение
mymap["foo"]
приведет к тому, что значение будет сконструировано по умолчанию и помещено в местоположение "foo".Так что будьте осторожны при выполнении
int value = mymap["foo"]
, потому что это сработает, , даже если вы никогда не назначали явно или вставляли в foo