我有一个如下所示的代码
template <typename KeyType, typename ValueType>
KeyType IDSystem<KeyType,ValueType>::registerParameter(const ValueType& value)
{
KeyType key = __IDCounter++;
_Map[key] = value; //crashes here
return key;
}
_Map 在哪里
std::map<KeyType, ValueType> _Map;
该程序曾经在指示的地方崩溃,然后我将该行替换为
_Map.at(key) = value; //out_of_range thrown here
现在程序在同一行抛出一个 std::out_of_range 异常......
KeyType 是标准库中的 int64_t,而 ValueType 是指向某个类(如 MyClass*)的指针。
令人惊讶的部分是我之前使用了 std::map ......并且没有出现任何问题。
我是否错误地使用了 std::map ?请指教。