我有点害怕这样的事情:
std::map<DWORD, DWORD> tmap;
tmap[0]+=1;
tmap[0]+=1;
tmap[0]+=1;
由于 DWORD 不会自动初始化,我总是担心 tmap[0] 是一个递增的随机数。如果运行时不知道如何初始化 DWORD,映射如何知道热初始化?
是否保证结果总是 tmap[0] == 3
?
最佳答案
是的。当通过 operator[]
将新值插入映射时,它是 value-initialized 并且对于内置数字类型(DWORD
是typedef 内置类型)这意味着零。
关于c++ - std::map operator[] 并自动创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787156/