Новый объект при вставке в карту оператором []
имеет значение , инициализированное значением . Это обеспечивается реализацией карты, то есть в этом смысле это делается «автоматически». Для объектов типа DWORD
(при условии, что это скалярный тип), инициализация значения означает инициализацию с нуля.
По определению, приведенному в 23.3.1.2, operator []
является сокращением для
(*((insert(make_pair(x, T()))).first)).second
Бит T()
- это новый объект, который в вашем случае превратится в DWORD()
. DWORD()
гарантированно равно нулю.