c ++ 11:使用显式的initializer_list对象初始化map

时间:2015-03-24 13:49:35

标签: c++11 initializer-list

在C ++ 11中,我可以使用如下初始化列表初始化地图:

map<string, int> mymap = {{"first", 1}, {"second", 2}};

但不是这样的:

initializer_list<pair<string,int>> il = {{"first", 1}, {"second", 2}};

map<string, int> mymap2{il};

知道为什么会这样吗?是否有不同的语法或根本不可能?

感谢。

1 个答案:

答案 0 :(得分:5)

initializer_list的{​​{1}}构造函数采用map列表,value_type列表中包含第一个元素pair

这将有效:

const