c++ - std::map 扩展初始值设定项列表是什么样的?

标签 c++ c++11 dictionary initializer-list

如果真的存在,std::map 扩展初始化列表会是什么样子?

我尝试了一些组合......好吧,我能想到的所有 GCC 4.4 的组合,但都没有找到编译的结果。

最佳答案

它存在并且运行良好:

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

记住 map 的值类型是pair <const key_type, mapped_type> ,所以你基本上需要一个具有相同或可转换类型的对的列表。

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

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

关于c++ - std::map 扩展初始值设定项列表是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3250123/

相关文章:

C++,以下代码的计算顺序

c++ - 模板化转换运算符的指导声明

c++ - 从函数 : optimizing speed and modern style 返回容器

python - 键顺序无关紧要的多键字典

python - 如何过滤嵌套的 JSON 并保留匹配的分支层次结构?

c++ - 在另一个类中创建一个类指针 vector ?

c++ - 我可以依赖无序 map 的顺序吗?

c++ - 相当于 glBegin/glEnd 的现代 OpenGL 是什么

c++ - 在头文件中使用 lambda 会违反 ODR 吗?

ios - 为什么我的 Dictionary Item 总是返回 0? swift