代码之家  ›  专栏  ›  技术社区  ›  rubenvb

一个std::map扩展初始值设定项列表是什么样子的?

  •  74
  • rubenvb  · 技术社区  · 14 年前

    如果它真的存在,那么 std::map 扩展的初始值设定项列表看起来像?

    我尝试了一些组合…好吧,我能想到的所有GCC4.4,但没有发现任何编译。

    1 回复  |  直到 8 年前
        1
  •  126
  •   fireant    8 年前

    它存在并运行良好:

    std::map <int, std::string>  x
      {
        std::make_pair (42, "foo"),
        std::make_pair (3, "bar")
      };
    

    记住,映射的值类型是 pair <const key_type, mapped_type> 因此,您基本上需要一个具有相同或可转换类型的配对列表。

    通过使用std::pair进行统一初始化,代码变得更加简单

    std::map <int, std::string> x { 
      { 42, "foo" }, 
      { 3, "bar" } 
    };