Bill Kotsias Bill Kotsias - 12 days ago 6
C++ Question

map<int,int> default values

std::map<int,int> mapy;
++mapy[5];


Is it safe to assume that
mapy[5]
will always be 1? I mean, will
mapy[5]
always get the default value of 0 before '++', even if not explicitly declared, as in my code?

Cheers

Answer

As soon as you access the map with the [] operator, if the key doesn't exist it gets added. The default initializer of the int type gets invoked - so it will get a value of 0.

Comments