映射<int,int>默认值

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

假设mapy[5]总是1会是安全的吗? 我的意思是,即使没有明确声明, mapy[5]总是得到'++'之前的默认值0,如在我的代码?

只要您使用[]运算符访问映射,如果该键不存在,它将被添加。 inttypes的默认初始值设定项会被调用 – 所以它会得到一个值0。

是的,默认值将是该types的默认值。 如果你想要另一个默认值,你可以创build一个行为类似于int但具有不同的默认构造函数的类。