我创建了一个非常简单的例子来说明这个问题:
#include <unordered_map>
int main() {
struct Example {
int num;
float decimal;
};
std::unordered_map<int, Example> map;
map.insert(1, { 2, 3.4 }); // Error none of the overloads match!
}
我应该可以插入到int和struct的Map中,但是编译器说没有一个重载匹配。
1条答案
按热度按时间tjvv9vkg1#
出现错误消息的原因是,
std::unordered_map::insert
的重载都不接受键和值参数。你应该做
代替
您可以参考https://en.cppreference.com/w/cpp/container/unordered_map/insert处std::unordered_map::insert的第6个重载