【发布时间】:2015-06-02 13:10:59
【问题描述】:
我想知道是否可以用n key:value 元素初始化std::map,其中n 是预定义的(类似于数组初始化:array[n])。
我不知道std::map 存在这样的构造函数,但我想我可以问一下以防万一。
另外一个人可以做的是:
#include <iostream>
#include <map>
int main()
{
int n = 5;
std::map<int,double> randomMap;
for(int i = 0; i < n; ++i)
{
randomMap.insert({i,0.9});
}
for(auto j: randomMap)
{
std::cout<<"key: " << j.first <<"\tvalue: " << j.second << std::endl;
}
return 0;
}
【问题讨论】:
-
初始化列表构造函数
-
如果您正在寻找像
std::map<int, double> randomMap(5, 0.9);这样的东西,那不存在。 -
@black 对于这样的构造函数,您希望每个元素的键是什么?如果键是某个用户定义的类而不仅仅是数字原语怎么办?
-
@black 也可以check a reference 看看标准没有规定这样的构造函数。
-
@CoryKramer 是的,你绝对是对的。我会读它,就好像它周围有花括号,这会让它完全没问题。