是否可以使用n个键初始化std :: map,其中n是预定义的?

时间:2015-06-02 13:10:59

标签: c++ stdmap

我想知道是否可以使用std::map key:value元素初始化n,其中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;
}

1 个答案:

答案 0 :(得分:11)

当然,您可以使用初始化列表,例如

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;
    }
}

Output

key: 0 value: 1.5
key: 3 value: 2.7
key: 9 value: 1.9