Leo*_*Lai 11 c++ stdmap primitive-types
请考虑以下代码:
map<int,int> m;
for(int i=0;i<10000;++i) m[i]++;
for(int i=0;i<10000;++i) printf("%d",m[i]);
Run Code Online (Sandbox Code Playgroud)
我认为打印出的值是未定义的,因为原始类型没有默认构造函数,但是每次测试时我都得到10000个1.
为什么要初始化?
Jos*_*vin 13
在调用operator[]并且缺少键时,使用表达式初始化该值,该表达式mapped_type()是类类型的默认构造函数,而对于整数类型则为零初始化.