【发布时间】:2020-10-20 17:21:05
【问题描述】:
考虑代码:
#include <unordered_map>
#include <array>
#include <iostream>
int main () {
std::unordered_map<int, std::array<int, 5>> map;
map[42][0] = 1;
for (int i = 0; i < 5; i++) {
std::cout << map[42][i] << " ";
}
}
这会在我的系统上打印1 0 0 0 0。 std::map 中保存的 std::array 的内容在插入时进行了值初始化(即数组中的所有整数都设置为 0)。标准能保证这一点吗?我不应该期望用作地图值的数组包含垃圾?
【问题讨论】:
-
这能回答你的问题吗? Default initialization of std::array?
标签: c++ initialization