[英]Initialization of map with a list as value
我正在尝试初始化包含列表的地图
map<string, list<int>> firstNamesMap = {{"name1", new list<int>}};
我收到以下错误:
error: could not convert ‘{{"name1", (operator new(8), (<statement>, ((std::list<int>*)<anonymous>)))}}’ from ‘<brace-enclosed initializer list>’ to ‘std::map<std::basic_string<char>, std::list<int> >’
map<string, list<int>> firstNamesMap = {{"name1", new list<int>}};
^
我最初试图用list<Data *>
而不是list<int>
初始化一个更大的地图,其中“Data”是一个之前声明的简单类。 不管怎样,它都会产生相同的错误。
不确定这是否重要,但我正在 Cygwin 中使用 g++ 进行编译。
new list<int>
结果在一个指针指向一个list<int>
(即, list<int> *
)。 但是,查看map
的映射类型:
map<string, list<int>>
^^^^^^^^^
你真正需要的是一个list<int>
,而不是一个list<int>*
。
初始化地图时尝试使用list<int>()
而不是new list<int>
:
map<string, list<int>> firstNamesMap = {{"name1", list<int>()}};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.