我有一个结构为什么unordered_map说没有匹配的构造函数进行初始化?
struct Key {
double x;
double y;
double z;
bool operator==(const Key& k) const{
return (x == k.x && y == k.y && z == k.z);
}
}
我这样做是因为我想使这个作为哈希映射键。
然后我做
std::unordered_map<Key, int> map = {{1.01, 2.02, 3.03}, 333};
,我想使用初始化列表作为构造,但我得到的错误no matching constructor for initialization of 'std::unordered_map<key, int> map = {{1.01, 2.02, 3.03}, 333};'
你如何期待系统建立一个无序的地图,当它所能做的只是比较关键字是否相等?它基于什么来映射? –
我不知道你有什么样的编译器,但'gcc'输出一个非常容易理解的消息['错误:不匹配'(const std :: hash)(const Key&)''](http: //ideone.com/7gm9Tk)。 –
请提供[mcve]。这不是一个。 – Barry