Yes, it guarantees. Initialization is performed by the value (it seems so it is called).
"Standard Library C ++" by N. Josattis, second edition, p. 378:
"If the key is an index for which there is no element, a new element is automatically inserted into the display. The value of the new element is initialized by the default constructor for the corresponding type. ... all elementary types have default constructors that initialize their values ​​to zero."
From the standard :
T& operator[](const key_type& x);
1 Effects: If there is no key in the map, inserts value_type(x, T()) into the map.
And about the initialization of the value from the same:
8 To value-initialize an object of type T means:
(8.1) - if T is a (possibly cv-qualified) class type (Clause 9) without a default constructor (12.1) or a default constructor;
(8.2) - if it is a constructor, it can be used, then it will be checked. -trivial default constructor, the object is default-initialized;
(8.3) - if T is an array type, then each element is value-initialized;
(8.4) - otherwise, the object is zero-initialized.