Рассмотрим следующий код:
map<int,int> m;
for(int i=0;i<10000;++i) m[i]++;
for(int i=0;i<10000;++i) printf("%d",m[i]);
Я думал, что распечатываемые значения будут undefined, потому что примитивные типы не имеют конструктора по умолчанию, но здесь я получил 10000 1 каждый раз, когда я тестировал.
Почему он инициализирован?