gpt4 book ai didi

c++ - 错误 C2664 : multimap in map

转载 作者:行者123 更新时间:2023-11-30 02:36:45 26 4
gpt4 key购买 nike

这是我的代码:

map<string, multimap<string, string>> mp;
string str1 = "abc";
string str2 = "def";
string str3 = "ghi";
mp.insert(str1, {str2, str3});

我收到错误 C2664:

'void std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::insert(std::initializer_list<std::pair<const _Kty,_Ty>>)' : cannot convert argument 1 from 'std::string' to 'std::_Tree_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const _Kty,_Ty>>>>' c:\users\thomas\documents\visual studio 2013\projects\test\test\main.cpp    14  1   test

看来我应该使用make_pair 所以我这样尝试:

mp.insert(std::make_pair(str1, std::make_pair(str2, str3)));

但我仍然得到同样的错误。
我该怎么办?

最佳答案

您正在尝试使用 std::pair 初始化多重映射。我想你的意思是这样的:

multimap<string, string> mm;
mm.insert(std::make_pair(str2, str3));
mp.insert(std::make_pair(str1, mm));

multimap<string, string> mm({{str2, str3}});
mp.insert(std::make_pair(str1, mm));

关于c++ - 错误 C2664 : multimap in map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32397927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com