在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};
知道为什么会这样吗?是否有不同的语法或根本不可能?
感谢。
答案 0 :(得分:5)
initializer_list
的{{1}}构造函数采用map
列表,value_type
列表中包含第一个元素pair
。
这将有效:
const