正如我们可以将向量初始化为:
vector<int> var1(2000,1);
是否可以初始化地图;
map<int, int>var2;
对于 2000 个变量...我要初始化的原因有两个:
- 如果我将来访问一个元素,例如 map[100]..我想要那个 map[100]=0
- 第二个原因是我使用了一个最低优先级队列,它使用 map 的第二个值进行比较,即存储在 map[0]...map[100] 中的值。
- 我不想使用向量,因为我的索引确实偏斜,这会导致大量空间浪费......即我的索引是 map[0]、map[30]、map[56]、map[100]、地图[120]、地图[190]等
有什么方法可以为 1000 个变量初始化映射...我也愿意使用任何其他数据结构。
也是初始化地图的传统方式,即
map<int, int> m = map_list_of (1,2) (3,4) (5,6) (7,8);
上述方法在我的情况下不起作用......还有其他方法吗?请帮助
编辑:我不能使用 for 循环:
这样,由于我的密钥分布是倾斜的,因此我不想要密钥保持固定。本质上以这种方式应用for循环与vector相同,这是我不想要的