我尝试将一对值插入map
,声明为:
unordered_map <unsigned int, std::string> map;
当我将2 string
和unsigned int
的组合插入map
时:
map.insert(std::make_pair(count,str1.append(str2)));
和Xcode说“没有匹配的成员函数来调用'insert'”。我查看了overload list,我不确定在这种情况下我应该使用哪一个。有人可以告诉我吗?
更新:此问题是由不成功的typedef引起的。我现在更改了map
并将其定义为unordered_map<usigned int, string>
答案 0 :(得分:4)
唯一可以插入
的内容std::unordered_map <unsigned int, objects> map;
是
std::pair<unsigned int, objects>
您似乎正在插入
std::pair<unsigned int, std::string>
除非std::string
可隐式转换为objects
,否则无效。
如果存在从std::string
到objects
的隐式转换,那么您可能需要考虑更简单且可能更高效的emplace
接口:
map.emplace(count, str1.append(str2));