c++ - std::map operator[] 并自动创建新对象

标签 c++ stl dictionary variable-assignment operator-keyword

我有点害怕这样的事情:

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/

相关文章:

C++用参数重载友元类函数参数

c++ - 为什么析构函数不会在您返回的对象上被调用?

c++ - iterator::difference_types 是否独立于系统

python - 如何使用 `dict` 迭代 `enumerate` 并将索引、键和值与迭代一起解包

java - 按值对 Map<Key, Value> 进行排序

c++ - CUDA:在使用 cudaMallocPitch 分配的二维数组中查找数组索引

c++ - TCP WSASend 完成标准

c++ - 如何在循环移位后从给定字符串中找到一组不同的字符串?

c++ - 有没有办法将 std::stack<pointer> 转换为 std::stack<const pointer>?

image - React - map 中的动态图像