我正在嘗試創建std::unordered_map
,其中值是std::type_index
。下面的代碼片段工作:使用std :: type_index作爲地圖中的值
std::unordered_map<std::type_index, int> workingMap;
workingMap[typeid(int)] = 1;
workingMap[typeid(char)] = 2;
但是這一次不運行,並拋出一個錯誤:
std::unordered_map<int, std::type_index> failingMap;
failingMap[1] = typeid(int);
failingMap[2] = typeid(char);
CS2512: 'std::type_index::type_index': no appropriate default constructor available.
我不完全理解這個錯誤,是什麼構造的區別在這些例子中? typeid(..)
是的值而不是密鑰可以製作一個映射嗎?
做'failingMap [1]'你創建一個默認條目,如果它沒有在地圖上找到。例如使用':: try_emplace' – Sopel