gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 22:53:22 31 4
gpt4 key购买 nike

我试图在 map 中插入一对值声明为:

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

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

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

Xcode 说“没有匹配的成员函数来调用‘insert’”。我看着 overload list ,我不确定在这种情况下应该使用哪一个。有人可以告诉我吗?


更新:此问题是由不成功的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));

关于c++ - 没有用于调用 std::unordered_map::insert() 的匹配成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35376011/

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