C++ 是否可以使用n个键初始化std::map,其中n是预定义的?
我想知道是否可以使用C++ 是否可以使用n个键初始化std::map,其中n是预定义的?,c++,stdmap,C++,Stdmap,我想知道是否可以使用nkey: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
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;
}
#包括
#包括
int main()
{
int n=5;
std::map随机化映射;
对于(int i=0;i 当然,例如,您可以使用初始值设定项列表
int main()
{
std::map<int, double> randomMap {{0, 1.5}, {3, 2.7}, {9, 1.9}};
for (auto const& element : randomMap)
{
std::cout << "key: " << element.first << " value: " << element.second << std::endl;
}
}
初始值设定项列表构造函数如果您正在查找类似于std::map randomMap(5,0.9)的内容
,它不存在。@black您认为这样一个构造函数的每个元素的键应该是什么?如果键是某个用户定义的类,而不仅仅是一个数值原语,该怎么办?@black您还可以看到,标准中没有指定这样的构造函数。@CoryKramer是的,您肯定是对的。我会像这样阅读它我认为值得指出的是,从C++11开始,它就可以使用了。当然,但OP已经在使用auto
,因此可以公平地假设他们已经在使用C++11可用的编译器。也是2015年,我希望大多数人至少都在使用C++11,或者如果他们是n当然,他们应该在问题中特别提到这一点。
key: 0 value: 1.5
key: 3 value: 2.7
key: 9 value: 1.9