我有一個結構爲什麼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