Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以使用n个键初始化std::map,其中n是预定义的?_C++_Stdmap - Fatal编程技术网

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