繁体   English   中英

使用列表作为值初始化地图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM