没有用于调用 std::unordered_map::insert() 的匹配成员函数

No matching member function for call to std::unordered_map::insert()

本文关键字:函数 成员 insert map 用于 调用 std unordered      更新时间:2023-10-16

我试图在map声明为

unordered_map <unsigned int, std::string> map;

当我插入 2 string s 的组合和 unsigned intmap 时:

map.insert(std::make_pair(count,str1.append(str2)));

Xcode说"没有匹配的成员函数来调用'插入'"。我查看了重载列表,不确定在这种情况下应该使用哪一个。有人可以告诉我吗?


更新:此问题是由不成功的 typedef 引起的。我现在更改了map并将其定义为unordered_map<usigned int, string>

唯一可以插入的内容

std::unordered_map <unsigned int, objects> map;

是一个

std::pair<unsigned int, objects>

你似乎在插入

std::pair<unsigned int, std::string>

除非std::string隐式转换为objects,否则这将不起作用。

如果存在从 std::stringobjects 的隐式转换,那么您可能需要考虑更简单且可能更有效的emplace接口:

map.emplace(count, str1.append(str2));