c++11:使用显式 initializer_list 对象初始化映射
c++11: initialize map with explicit initializer_list object
在 C++11 中,我可以像这样使用 initializer_list 初始化地图:
map<string, int> mymap = {{"first", 1}, {"second", 2}};
但不是这样的:
initializer_list<pair<string,int>> il = {{"first", 1}, {"second", 2}};
map<string, int> mymap2{il};
知道这是为什么吗?是否有不同的语法或者根本不可能?
谢谢。
map
的 initializer_list
构造函数采用 value_type
的列表,它是第一个元素 const
.
的 pair
这会起作用:
initializer_list<pair<string const,int>> il = {{"first", 1}, {"second", 2}};
^^^^^^
在 C++11 中,我可以像这样使用 initializer_list 初始化地图:
map<string, int> mymap = {{"first", 1}, {"second", 2}};
但不是这样的:
initializer_list<pair<string,int>> il = {{"first", 1}, {"second", 2}};
map<string, int> mymap2{il};
知道这是为什么吗?是否有不同的语法或者根本不可能?
谢谢。
map
的 initializer_list
构造函数采用 value_type
的列表,它是第一个元素 const
.
pair
这会起作用:
initializer_list<pair<string const,int>> il = {{"first", 1}, {"second", 2}};
^^^^^^